[編碼題|20分] 找周期
時間限制:C/C++ 5秒,其他語言 10秒
空間限制:C/C++ 65536K,其他語言 131072K
.
題目描述
.
對於嚴格遞增的正整數數列A=a1、a2、……、an,如果一個正整數T滿足:
1)對於數列A中的任意元素x,如果x+T不大於an,則x+T也是數列A中的元素
2)對於數列A中的任意元素x,如果x-T不小於a1,則x-T也是數列A中的元素
那么稱T為數列A的周期,如果同時滿足:
3)所有小於T的正整數,都不是A的周期
則稱T為A的最小周期
輸入描述:
每組測試樣本的輸入格式為:
第一行是一個正整數N
從第二行開始,每行有若干個正整數,依次存放n、a1、a2、……、an,一共有N行,也就是N個數列。
輸出描述:
輸出有N行,每行打印出對應數列的最小周期。
示例1
輸入
3
3 1 2 3
3 2 4 6
3 3 4 6
輸出
1
2
3
說明
數據范圍:
N:0
[編碼題|20分] 拼硬幣
時間限制:C/C++ 1秒,其他語言 2秒
空間限制:C/C++ 65536K,其他語言 131072K
.
題目描述
.
.
現有n1+n2種面值的硬幣,其中前n1種為普通幣,可以取任意枚,后n2種為紀念幣,每種最多只能取一枚,每種硬幣有一個面值,問能用多少種方法拼出m的面值?
8 輸入描述:
第一行三個整數n1, n2, m,分別表示普通幣種類數,紀念幣種類數和目標面值
第二行n1個整數,第i種普通幣的面值a[i]。保證a[i]為嚴格升序。
第三行n2個整數,第i種紀念幣的面值b[i]。保證b[i]為嚴格升序。
對於30%的測試,保證1<=n1+n2<=10,1<=m<=100,1<=a[i]<=100 1<=b[i]<=100
對於100%的測試,保證1<=n1+n2<=100, 1<=m<=100000, 1<=a[i]<=100000 1<=b[i]<=100000
輸出描述:
輸出一行,包含一個數字x,表示方法總數對1000000007(1e9+7)取模的結果。
注意:不要忘記取模!
示例1
輸入
3 1 5
1 2 3
1
輸出
9
說明
(x)代表面值為x的普通幣,[x]代表面值為x的紀念幣,樣例所有方法數如下:
(1)(1)(1)(1)(1)
(1)(1)(1)(2)
(1)(1)(3)
(1)(2)(2)
(2)(3)
(1)(1)(1)(1)[1]
(1)(1)1
(1)1
1(2)
備注:
兩個方法,它們任意一種或以上的硬幣數量不同,則認為是兩種拼法。
[編碼題|20分] 矩形游戲
時間限制:C/C++ 1秒,其他語言 2秒
空間限制:C/C++ 65536K,其他語言 131072K
.
題目描述
.
.
小a在玩一個很簡單的游戲,游戲的內容是控制一個小人在一塊矩形的空地內走,一旦小人走出矩陣范圍,游戲就失敗。游戲機有上,下,左,右四個按鍵,每按一下小人就向相應的方向走一步。這個游戲過於簡單,小a說:“這種游戲我閉着眼睛玩都輸不了”。於是他便閉上眼睛,進行一連串的操作。但若他中途輸了的話就會停止。
那么問題來了:給定小a的操作,進行Q次詢問,你能算出每次詢問小人能走多少步嗎?
輸入描述:
第一行為長度L的字符串S,每個字符依次代表小a的一次操作。’u’代表向上,’d’代表向下,’l’代表向左,’r’代表向右。字符串S不會包含其他字符。
第二行是整數Q,代表Q次詢問
接下來Q行,每行有四個整數,N,M,X,Y,保證1<=X<=N,1<=Y<=M,矩陣大小為N*M,小人初始位置為(X, Y)。
對於30%的測試,0
[編碼題|20分] 有理數
時間限制:C/C++ 1秒,其他語言 2秒
空間限制:C/C++ 65536K,其他語言 131072K
.
題目描述
.
.
升序數組中第一個是1, 后續為若干連續的素數,對於數組里面的元素m和n(m < n)都對應了一個有理數m / n, 現在給定這個數組和一個K,要求返回第K小的有理數。
輸入描述:
每組測試樣本的輸入格式為:
第一行是一個正整數N
從第二行開始,每行有若干個正整數,依次存放K、a1、……、an,一共有N行,也就是N組參數。
K是輸入參數表示需要尋找的順序第K小的有理數, a1 - an 是以1開始后續n - 1個素數。
輸出描述:
輸出有N行,每行兩個數字m和n,空格隔開,分別表示第K小有理數的分子和分母。
示例1
輸入
1
3 1 2 3 5
輸出
2 5
備注:
m、n必須為a1 - an中的滿足條件的兩個數。
數據范圍為:
10 <= N <= 20000
10 <= K <= 20000
1 <= m < n < 20000
[編碼題|20分] 電容充電
時間限制:C/C++ 1秒,其他語言 2秒
空間限制:C/C++ 65536K,其他語言 131072K
.
題目描述
.
.
有一台用電容組成的計算器,其中每個電容組件都有一個最大容量值(正整數)。
對於單個電容,有如下操作指令:
指令1:放電操作 - 把該電容當前電量值清零
指令2:充電操作 - 把該電容當前電量補充到其最大容量值
對於兩個電容A和B,有如下操作指令:
指令3:轉移操作 - 從A中盡可能多的將電量轉移到B,轉移不會有電量損失,如果能夠充滿B的最大容量,那剩余的電量仍然會留在A中
現在已知有兩個電容,其最大容量分別為a和b,其初始狀態都是電量值為0,希望通過一系列的操作可以使其中某個電容(無所謂哪一個)中的電量值等於c(c也是正整數),這一系列操作所用的最少指令條數記為M,如果無論如何操作,都不可能完成,則定義此時M=0。
顯然對於每一組確定的a、b、c,一定會有一個M與其對應。
輸入描述:
每組測試樣本的輸入格式為:
第一行是一個正整數N
從第二行開始,每行都是3個正整數依次組成一組a、b、c,一共有N組
輸出描述:
輸出為N行,每行打印每一組的對應的M
示例1
輸入
2
3 4 2
2 3 4
輸出
4
0
說明
對於(3,4,2),最少只需要4個指令即可完成:
(設最大容量為3的是A號電容,另一個是B號電容)
充電 A轉移 A->B充電 A轉移 A->B
此時A中當前電量為2,操作完成,所以輸出4。
對於(2,3,4),顯然不可能完成,輸出0。
備注:
數據范圍:
N:0
車廂排序
一列火車有n個車廂標記為1,2,3,4,5,6…n
現在因為某些原因,需要調整車廂的相對順序
例如需要將車廂順序調整為2,3,1,4,5,6…n
由於車廂龐大,且車廂只能停留在鐵軌上,所以不能隨心所欲的調整相對順序
現在只能利用兩條並行的鐵軌對車廂的順序進行調整
例如
原序列為1,2的車廂
車廂1進入鐵軌1停止
車廂2進入鐵軌2,然后再開出
然后鐵軌1上的車廂1再開出
這樣可以使得車廂2調整到車廂1得前面
現在給你一個期望得到的車廂順序,請你判斷該順序能否通過以上方法調整車廂順序而得到
(車廂只能前進無法后退)
輸入格式
第一行n表示有n個車廂
第二行有n個數為1~n的排列用空格隔開,表示期望得到的車廂順序
輸出:若可以得到則輸出Yes 否則輸出No
樣例輸入1:
2
2 1
樣例輸出1:
Yes
樣例輸入2:
5
3 4 1 5 2
樣例輸出2:
Yes
樣例輸入3:
5
3 4 2 1 5
樣例輸出3:
No
出題數量
一些出題人出了n道題,每道題有一個難度系數,難度系數滿足以下關系的3道題可以組成一套試卷,為了使這n道題使用上且只能使用一次,問出題人最少還要出多少題?
a<=b<=c
b-a<=10;
c-b<=10;
筆試題目
選擇填空的內容為:計組、概率論、其他高中數學基本知識
編程題1:輸入16進制數(1,2…f..)組成的矩陣,由左上角開始,到右下角,只能向右或下走,找出另走過的數的乘積的16進制數后綴0最少的方法。
編程題2:給定長度為n序列,分割成m段,找出令分割后 “數值之和最大的段” 最小的分割方法
選擇填空重點:
- 計組:四路組相連+RLU
1、FIFO – 先進先出
如果一個數據最先進入緩存中,則應該最早淘汰掉。
2、LRU – 最近最久未使用
應當把最久沒有被訪問到的數據淘汰。
3、LFU – 最近最少使用
一個數據在最近一段時間內使用次數最少 -
概率論: 已知A、B都條件獨立於C,已知P(A|C)、P(B|C),問P(A|B,C)?
-
已知一個一元四次方程,給了f(1)、f(2)、..f(5)的值,問f(6)?
-
問檢驗假設、置信區間
