牛客網 合唱隊形(思維)

2021-08-20 19:23:55 字數 935 閱讀 5574

【題目】

合唱隊形

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 262144k,其他語言524288k

64bit io format: %lld

題目描述

鐵子的班級在畢業晚會有乙個合唱節目,到了畢業晚會的時候,他們必須排成一排一起合唱"認錯","當然是選擇原諒他"等一系列原諒歌曲,但是當隊形布置好的時候,領導們覺得隊形裡最長的連續的女生的長度太小了,但是由於馬上要開始演唱,所以最多只能兩個人交換位置,問新隊形中最長的連續的女生的長度是多少?

輸入描述:

第一行乙個數字n表示鐵子班級的總人數。1≤n≤105

第二行乙個字串s表示最初的隊形布置,si=0表示第i個人是女生,si=1表示第i個人是男生。

輸出描述:

輸出一行表示答案

6

101010

3
將第6個女生和第3個男生交換位置可以滿足要求
【題解】

用陣列f記錄每個男生前後的連續女生數,最後做個判斷就好了。

【**】

#includeusing namespace std;

int main()

else

k++;

for(i=1;i<=k;i++)

ans=max(ans,f[i-1]+f[i]);

if(sum==n||ans==sum)

printf("%d\n",sum);

else

printf("%d\n",ans+1);

return 0;

}

牛客網 合唱隊形(dp,順逆算兩遍)

合唱隊形 題目描述 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學不交換位置就能排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2,k,他們的身高分別為t1,t2,tk,則他們的身高滿足t1 t2 ti ti ti 1 tk 1 i k 你的任務是...

合唱隊形 DP

合唱隊形 chorus.pas c cpp n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2 k,他們的身高分別為t1,t2,tk,則他們的身高滿足t1 ti 1 tk 1 i k 你的任務是,已知所...

合唱隊形 dp

題目描述 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學不交換位置就能排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2,k,他們的身高分別為t1,t2,tk,則他們的身高滿足t1 t2 ti ti ti 1 tk 1 i k 你的任務是,已知所有...