鐵子和順溜在學習了博弈論的sg函式之後,解決了很多很多博弈題,現在他們遇到了一道難題。
給出乙個長度為 n 的數列,數列裡的每個元素都是個位數,這個數列的每乙個連續子數列都能生成
乙個十進位制數,對於子數列a[l~r],這個十進位制數的個位為a[r],十位為a[r - 1],...,最高位
為a[l]。
現在鐵子需要知道最小的不能被該數列的子數列生成的十進位製非負整數是多少?
第一行乙個數字n。(1 ≤ n ≤ 1000)第二行n個數字di
。(0 ≤ di
≤ 9)
輸出乙個數字表示答案。
示例1
複製
43 0 1 2
複製
4
示例2 複製
109 8 7 6 5 4 3 2 1 0
複製
11
思路:這題把我嚇懵了,結果是個取巧的典型。因為求最小,數列生成的四位數為o(n)個,所以不可能超過10000,然後暴力..........
**如下:
#include#include using namespace std;
const int m = 1000;
int a[m];
int sg[m];
int main()
}for (int i = 0; i < m; i++)}}
return 0;
}
鐵子的班級在畢業晚會有乙個合唱節目,到了畢業晚會的時候,他們必須排成一排一起合唱"認錯","當然是選擇原諒他"等一系列原諒歌曲,但是當隊形布置好的時候,領導們覺得隊形裡最長的連續的女生的長度太小了,但是由於馬上要開始演唱,所以最多只能兩個人交換位置,問新隊形中最長的連續的女生的長度是多少?
第一行乙個數字n表示鐵子班級的總人數。1≤n≤105第二行乙個字串s表示最初的隊形布置,si=0表示第i個人是女生,si=1表示第i個人是男生。
輸出一行表示答案
示例1
複製
6101010
複製
3
將第6個女生和第3個男生交換位置可以滿足要求
思路:........記錄每2個男生之間女孩的數量,然後進行操作取最大。
**如下:
#includeusing namespace std;
int main()
else
k++;//k為男孩的數量
for(i=1;i<=k;i++)
if(sum==n||ans==sum)//避免交換時特殊情況產生的減少
printf("%d\n",sum);
else
printf("%d\n",ans+1);
return 0;
}
反思:這學期練習模板題較多,感覺產生了一定的依賴性,腦子也不怎麼動,結果就是這次小白賽呵呵噠了,最近也是運氣極為不佳,上次距離牛客衣服差1名,這次差2名.........自己越來越水,,,好頹廢好頹廢,快期末考試了,還要忙著複習。每天2個小時的**時間怕是要保不住了......都說acm是比智商,我需要多鍛鍊鍛鍊我的腦子,避免被各種花式吊打。 牛客網 小白月賽13 B題
示例1 輸入dcbaabc輸出7說明 將前面的dcba移動到末尾變成abcdcba,這個字串的最大回文子串就是它本身,長度為7備註 n表示字串的長度,1 n 5000n表示字串的長度,1 n 5000本題呢,難就難在manacher 馬拉車 演算法,我也不是特別清楚,馬拉車演算法 就是在補題的時候稍...
牛客網 小白月賽 D題
位運算是乙個非常重要的東西。而小a最近在學習位運算,小a看到了一道很簡單的例題,是說從n個數裡面選出n 1個數要讓它們或起來的值最大,小a想知道這個答案是多少。你可以幫幫他嗎?輸入描述 第一行乙個整數n表示有n個數接下來一行n個數表示a1,a2 an第一行乙個整數n表示有n個數接下來一行n個數表示a...
牛客小白月賽13 D題
位運算是乙個非常重要的東西。而小a最近在學習位運算,小a看到了一道很簡單的例題,是說從n個數裡面選出n 1個數要讓它們或起來的值最大,小a想知道這個答案是多少。你可以幫幫他嗎?思路 預處理了一下字首l陣列和字尾r陣列,然後列舉那個不選的數就可以了,每次更新ans max ans,l i 1 r i ...