BZOJ 1142: [POI2009]Tab【并查集/hash
2016-12-12 15:56
351 查看
有一万种写法2333
可以hash可以并查集,反正xjb写写就好【并查集虚的不行2333竟然没有T
可以hash可以并查集,反正xjb写写就好【并查集虚的不行2333竟然没有T
#include<bits/stdc++.h> #define MAXN 1005 #define base 1000000 #define MAXZ 2000006 using namespace std; int T,n,m; inline int read(){ register char ch = getchar(); while((ch^'-')&&!isdigit(ch)) ch = getchar(); register int rtn = 0 , f = 1; if(ch=='-') f = -1 , ch = getchar(); while(isdigit(ch)) rtn = rtn*10 + ch - '0' , ch = getchar(); return f*rtn; } //==================================================== int a[MAXN][MAXN] , b[MAXN][MAXN]; int fth_col[MAXZ] , fth_lin[MAXZ] , tag[MAXZ]; int find_col(int x){ return x==fth_col[x]? x: fth_col[x] = find_col(fth_col[x]); } inline void merge_col(int x,int y){ fth_col[find_col(x)] = find_col(y); } int find_lin(int x){ return x==fth_lin[x]? x: fth_lin[x] = find_lin(fth_lin[x]); } inline void merge_lin(int x,int y){ fth_lin[find_lin(x)] = find_lin(y); } int main(){ //freopen("1.in","r",stdin); T = read(); while(T--){ n = read() , m = read(); for(register int i=0;i<=MAXZ;++i) fth_col[i] = fth_lin[i] = i , tag[i] = 0; a[1][1] = read() + base; for(int i=2;i<=m;++i) a[1][i] = read() + base , merge_lin(a[1][i] , a[1][1]); for(int i=2;i<=n;++i){ a[i][1] = read() + base; merge_col(a[i][1] , a[1][1]); for(int j=2;j<=m;++j){ a[i][j] = read() + base; merge_lin(a[i][1] , a[i][j]); merge_col(a[i][j] , a[1][j]); } } for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) tag[a[i][j]] = 1 , find_col(a[i][j]) , find_lin(a[i][j]); for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) b[i][j] = read() + base; int flag = 0; for(int i=2;i<=n;++i){ for(int j=2;j<=m;++j){ if(!tag[b[i][j]]){ flag = 1; break; } if((fth_lin[b[i][j]] ^ fth_lin[b[i][1]]) || (fth_col[b[i][j]] ^ fth_col[b[1][j]])){ flag = 1; break; } } if(flag) break; } puts(flag?"NIE":"TAK"); } return 0; }
相关文章推荐
- BZOJ 1142: [POI2009]Tab 模拟
- BZOJ 1142 [POI2009]Tab 模拟
- bzoj 1142: [POI2009]Tab 乱搞
- BZOJ1142: [POI2009]Tab
- 【BZOJ1142】【POI2009】Tab 乱搞
- BZOJ 1142: [POI2009]Tab
- [乱搞 暴力] BZOJ 1142 [POI2009]Tab
- BZOJ 1142 POI2009 Tab Hash
- bzoj 1137: [POI2009]Wsp 岛屿 (半平面交)
- 【BZOJ】【P1135】【POI2009】【Lyz】【题解】【线段树+Hall定理】
- BZOJ 1133 [POI2009]Kon DP
- BZOJ 1135 [POI2009]Lyz 线段树
- BZOJ3524: [Poi2014]Couriers/BZOJ2223: [Coci 2009]PATULJCI
- BZOJ1133: [POI2009]Kon
- 【BZOJ1133】[POI2009]Kon【DP】
- bzoj3524: [Poi2014]Couriers&&2223: [Coci 2009]PATULJCI
- bzoj1115[POI2009]石子游戏Kam 阶梯NIM
- 【bzoj3524/2223】[Poi2014]Couriers/[Coci 2009]PATULJCI 主席树
- BZOJ 1135: [POI2009]Lyz Hall定理 + 线段树
- BZOJ2223: [Coci 2009]PATULJCI&&BZOJ3524: [Poi2014]Couriers