FZU 2041 二分列舉

2022-05-22 06:24:08 字數 941 閱讀 2253

思路:先o(n)預處理出ri[i][j],le[i][j],分別表示第i個位置向右邊移動出j個空格需要的步數,表示第i個位置向左邊移動出j個空格需要的步數。

然後列舉間隙處,二分判段最大間隔。

#include#include

#include

#include

#define maxn 710

#define inf 100000000

using

namespace

std;

intri[maxn][maxn],le[maxn][maxn],n,m;

char

str[maxn];

bool ok(int pos,int

x)

for(i=0;i<=n;i++)

//cout}int

main()

}ze=0

; scanf(

"%d%d%s

",&n,&m,str);

if(str[0]=='

0') le[1][1]=0,ze=1

;

for(i=1;i)

}if(str[n-1]=='

0') ri[n][1]=ri[n+1][1]=0

;

for(i=n-1;i>=1;i--)

}int f=0

;

int ans=0

,l,r,mid;

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

ans=max(ans,l);

if(ok(i,r))

ans=max(ans,r);}}

printf(

"case %d: %d\n

",++ca,ans);

}return0;

}

瘋牛(二分列舉)

描述 農夫 john 建造了一座很長的畜欄,它包括n 2 n 100,000 個隔間,這些小隔間依次編號為x1,xn 0 xi 1,000,000,000 但是,john的c 2 c n 頭牛們並不喜歡這種布局,而且幾頭牛放在乙個隔間裡,他們就要發生爭鬥。為了不讓牛互相傷害。john決定自己給牛分配...

hdu 5265 二分 列舉

解題思路 首先對每個數進行去模,這樣得到的數就會是 0,p 1 的範圍,接下來就是如何組合的問題了。這裡要考慮到模的性質了,假設取的兩個數分別為i,j,其中i j,如果當前數i p 1 2,那麼就會出現兩種情況 1 j p 1 2,這樣算出來的結果必定是i j p,i和j肯定都要盡可能大 2 j p...

HDU 6012 列舉 二分

問題描述 這幾天lotus對培養盆栽很感興趣,於是她想搭建乙個溫室來滿足她的研究慾望。lotus將所有的n n株盆栽都放在新建的溫室裡,所以所有盆栽都處於完全相同的環境中。每一株盆栽都有乙個最佳生長溫度區間 l,r l r 在這個範圍的溫度下生長會生長得最好,但是不一定會提供最佳的研究價值 lotu...