kolakoski 序列是個自生成的無限序列。
例如,當給定的整數組為 [1, 2] 時,kolakoski 序列是這樣的:
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,…]
如果我們將相鄰的相同的數字分成一組,那麼將會得到:
[[1],[2,2],[1,1],[2],[1],[2,2],[1],[2,2],[1,1],[2],[1,1],[2,2],[1],[2],[1,1],[2],[1],[2,2],[1,1],…]
可以看出,每組數字交替由 1, 2 組成。
接下來對每個分組求他的長度,得到:
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,…]
可以看出,經過如上的變換後,數列保持不變。
對於其他給定的整數組,同樣可以用類似的方法構造 kolakoski 序列,例如給定整數組 [2, 3] 時:
[2,2,3,3,2,2,2,3,3,3,2,2,3,3,2,2,3,3,3,2,2,2,3,3,3,2,2,3,3,…]
給定整數組 [2, 1, 3, 1] 時,構造得到如下:
[2,2,1,1,3,1,2,2,2,1,3,3,1,1,2,2,1,3,3,3,1,1,1,2,1,3,3,1,1,…]
輸入由兩行組成:第一行包括兩個正整數 n, m
第二行包括 m 個正整數 a
資料規模與限制:
0 < n < 10000
1 < m < 1000
0 < a[i] < 1000
a[i] 不等於 a[i + 1]
a[0] 不等於 a[m-1]
每行乙個數字,共 n 行示例1整數組 a 生成的 kolakoski 序列的前 n 項
30 42 1 3 1
221不知道為什麼,編譯結果和牛客的參考一樣,就是c不過去???1312
2213
3112
2133
3111
2133
112
#include int main(void)
; scanf("%d",&n);
scanf("%d",&m);
for (i=0;in)break;
} x++;
if (k > n)break;
} return 0;
}
程式設計題22 左旋轉字串
組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!public class...
C語言 程式設計練習22題
1 編乙個程式,輸入x的值,按下列公式計算並輸出y值 2 已知數a與b,由鍵盤輸入ab的值,交換它們的值,並輸出。3 給乙個不多於5位的正整數,要求 一 求它是幾位數,二 逆序列印出各位數字。4 利用條件運算完成此題 學習成績 90分的同學用a表示,60 89分之間的用b表示,60分以下的用c表示。...
程式設計題 數串
設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。如 n 3時,3個整數13,312,343,連成的最大整數為34331213。如 n 4時,4個整數7,13,4,246連線成的最大整數為7424613。有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數n n 100 第二行包含n個數 ...