輸入描述
乙個數 t
接下來 t 行, 每行乙個長度為 n 的 01 串
輸出描述 乙個數 p 表示 dqs 消耗的神力
樣例輸入
2 000011
0101
樣例輸出
26 10
資料範圍及提示 1<=t<=50
60%:1<=n<=1000
100%:1<=n<=100000
純暴力,沒什麼技術含量,但是在這道題上跪了。一開始的思路有錯誤,認為一定要先找出連續次數最多的一組數,在這組數的左邊或右邊進行操作,還沒來得及驗證就急急忙忙開始打了,剛剛培養的小習慣也丟了。
正解:先將整個串掃一遍,把個連續子串的位置以及具體數目存到另乙個陣列中,對這個陣列進行操作。
比較每個位置修改左邊或修改右邊取得的最大值,取所有最大值的最大值。
要格外注意一種情況:
0 0 0 1 0 0 0此時修改中間的1得到最大值。
修改過程中注意判斷邊界,如果這個位置在最左邊,那麼只需要比較未修改的值和修改右邊的值,最右邊的位置同理。
#include
#include
#include
#include
using
namespace
std;
const
int maxn=100000+10;
char a[maxn];
int t,n,sum;
struct node
b[maxn];
int p(int a)
int main()
else
if(a[i+1]!=a[i])
}k-=1;
for(int i=1;i<=k;i++)
ans=sum;
for(int i=1;i<=k;i++)
if(k==1) cout
<'\n';
else
cout
<'\n';
}//fclose(stdin);
//fclose(stdout);
return
0;}
11 08隊內胡策
總結就是t3想錯直接翻車233.第二題給你兩個日期,問這兩個日期差了多少毫秒。兩行,每行乙個日期,日期格式保證為 yyyy mm dd hh mm ss這種形式。第二個日期時間一定比第乙個日期時間要大兩個日期的年份一定都是 21 世紀的年份。一行乙個整數代表毫秒數。2000 01 01 00 00 ...
隊內胡策 2017 10 12
t1 t2 狀壓dp t3 原創題 函式求和 題目描述 有乙個含有 n 個數字的序列 a,元素標號 1 到 n。同時你有 n 個函式,標號為 1 到 n。第 i 個函式函式值為序列中下標為 li 到 ri 的元素和。現在你需要維護以下兩種操作 1 x y 將序列中下標為 x 的元素修改為 y2 s ...
隊內胡策的某些題
其實胡策已經一周了,也不按時間順序放了,挑一些題目放上來,也當做複習 day1 t2 這個題的原題在洛谷上有p1550 usaco08oct 澆水洞watering hole 題目描述 眾所周知,dqs因上課不好好睡覺被班主任請回了家裡!dqs回到家發現家裡還有農場,於是他決定種些什麼,幾個月後dq...