省略
省略
C++に変換後のコードはこちら
int N, M, Q, A[1d5], B[1d5], T, X, Y;
graph g;
char S[1d5][9];
{
int x, y;
unionFind uf;
rd(N,M,Q,S(N),(A--,B--)(M));
g.setEdge(N,M,A,B);
uf.walloc(N*7, 1);
rep(i,N) rep(j,7) if(S[i][j]==S[i][(j+1)%7]=='1') uf(i*7+j, i*7+(j+1)%7);
rep(i,M) rep(j,7) if(S[A[i]][j]==S[B[i]][j]=='1') uf(A[i]*7+j, B[i]*7+j);
rep(Q){
rd(T, X--, Y--);
if(T==1){
S[X][Y] = '1';
if(S[X][Y]==S[X][(Y+1)%%7]=='1') uf(X*7+Y, X*7+(Y+1)%%7);
if(S[X][Y]==S[X][(Y-1)%%7]=='1') uf(X*7+Y, X*7+(Y-1)%%7);
rep[g.edge[X]](i,g.es[X]) if(S[X][Y]==S[i][Y]=='1') uf(X*7+Y, i*7+Y);
} else {
wt(uf.size(X*7));
}
}
}
Current time: 2024年04月30日04時04分38秒
Last modified: 2020年10月24日18時42分56秒 (by laycrs)
Tags: Competitive_Programming_Incomplete yukicoder
トップページに戻る
Logged in as: unknown user (not login)