這是一道我打bug打得顛狂地笑出來的題(其實是笑自己神經病)
題解:1、統計妹子個數,放置後期處理溢位
2、給序列上的每個點染色(染成所屬最長妹子序列長度)
3、對於每個男生點,判斷兩邊顏色相加再+1,注意和妹子總數比較維護最小值,最長序列維護最大值就是答案
4、(顛狂點)邊界情況,全是妹子,或者全是單身狗,或者嘴邊上乙個狗,其他全是妹子等情況。瘋狂打補丁,顛狂地笑。
#include using namespace std;
int a[100005];
int main()
else tag = 0;
}for(int i = n - 1;i >= 0;i--)
}for(int i = 1;i < n - 1;i++)
}if(str[0] == '1')
if(str[n-1] == '1')
if(res == n) cout << n << endl;
else cout << ma << endl;
return 0;
}
牛客小白月賽4 I 合唱隊形
做法,2個人交換位置肯定是男和女交換,列舉全部男生就可以了。一共就三種情況,第一種是n個人全部是女生,那最長連續女生就是n了,第二種是,當前列舉到的男生,左邊連續女生的個數 右邊連續女生的個數等於總的女生數量,連續長度就是l i 1 r i 1 第三種是,當前列舉到的男生,左邊連續女生的個數 右邊連...
牛客小白月賽4 I 合唱隊形
做法,2個人交換位置肯定是男和女交換,列舉全部男生就可以了。一共就三種情況,第一種是n個人全部是女生,那最長連續女生就是n了,第二種是,當前列舉到的男生,左邊連續女生的個數 右邊連續女生的個數等於總的女生數量,連續長度就是l i 1 r i 1 第三種是,當前列舉到的男生,左邊連續女生的個數 右邊連...
牛客小白月賽4 I 合唱隊形
鐵子的班級在畢業晚會有乙個合唱節目,到了畢業晚會的時候,他們必須排成一排一起合唱 認錯 當然是選擇原諒他 等一系列原諒歌曲,但是當隊形布置好的時候,領導們覺得隊形裡最長的連續的女生的長度太小了,但是由於馬上要開始演唱,所以最多只能兩個人交換位置,問新隊形中最長的連續的女生的長度是多少?第一行乙個數字...