場上一直wa,場下清題又不停t,最後終於調好了,dfs過程中會爆棧,最後向右向下掃點的時候注意要標記,每個點只用加入一次不然會t。
總體思路就是:從(1,1)點開始dfs,只走0的位置,注意方向是上下左右,看能到達的最遠點,將最遠點做為新的起點,這時最小的二進位制長度已經找到了。然後bfs,每次向右或者向下走,有0走0,各種情況都為1的時候才走1.
#pragma comment(linker, "/stack:10240000000000,10240000000000")
#include#include#include#include#include#include#include#include#includeusing namespace std;
const int maxn=1100;
char mp[maxn][maxn];
int mark[maxn][maxn];
int n,m;
struct node
};vector ans;
vector zero;
vector one;
queue q;
int cnt;
bool ok (int x,int y)
void dfs (int x,int y)
int main ()
ans.clear();
flag=0;
for(int i=1; i<=n; i++)}}
if(flag==0) printf("0\n");
else
else}}
}while(true)
if(ok(x+1,y)&&!mark[x+1][y]&&mp[x+1][y]=='0')
if(ok(x,y+1)&&!mark[x][y+1]&&mp[x][y+1]=='0')
if(ok(x+1,y)&&!mark[x+1][y]&&mp[x+1][y]=='1')
if(ok(x,y+1)&&!mark[x][y+1]&&mp[x][y+1]=='1')
}if(flag==1) break;
if(!zero.empty())
{ans.push_back(0);
for(int i=0; i
2015 多校第四場 XYZ and Drops
include include include include using namespace std struct node const int maxn 210 vector pair iterator it int d 5 2 int r,c 直接暴力模擬,注意題意 若水珠原來大小為3,恰好某...
2013第四場多校
多校第四場 6題,打得最好的一場多校。還是cjboy給力。本場比賽我基本上沒什麼貢獻,搞04一搞就是一下午。最後看了09覺得只有狀態壓縮,不知道怎麼優化。1004 圖論,強聯通分量 0 一開始推理的時候思路很清晰,但是接著就腦殘了,沒怎麼細想就直接去套樣例。以為得到了正確的解法,只是需要乙個特判。然...
2019湖南多校第四場
開場lfw過a,然後shl過c,然後把b題丟給做苦力勞動悲悲傷傷的lfw寫,lfw過b,d題lfw開始字串hash,一開始直接用結構體裡面存陣列丟set裡面然後mle,之後改成long long丟進set,還是mle,然後lfw開始上頭,隨便亂改一下就交上去mle。然後shl吧防ak題k過了,做過這...