hdu5652 India and China Origins
来源:互联网 发布:思念是一种病 知乎 编辑:程序博客网 时间:2024/05/22 11:36
题意:在一个地图上 有山峰(1表示),中国印度在地图上下,在原有地图上增加一些山峰,问何时中国和印度不连通。
思路:开始想着每个操作后暴力图上上下点看是否连接,果然TLE。
正确解法是并查集,可以考虑从地图左边到右边是否出现一条路阻断联通,即 左边某点到右边某点是否有关系,就可以判断上下联通。
#include<bits/stdc++.h>using namespace std;const int N=510;int f[N*N],v[N][N],M[N][N],n,m;int F(int x) {return f[x]==x ? x: f[x]=F(f[x]);}void Merge(int x,int y) {if(F(x)!=F(y)) f[F(x)]=y;}void add(int x,int y){ int z=M[x][y]; for(int i=-1;i<=1;i++){ for(int j=-1;j<=1;j++){ if(v[x+i][y+j]==1) Merge(z,M[x+i][y+j]); } } if(y==1) Merge(z,0); if(y==m) Merge(z,1); v[x][y]=1;}int main(){ int T;scanf("%d",&T); while(T--){ int ans=-1; memset(v,0,sizeof(v)); scanf("%d%d",&n,&m); int cnt=1; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ M[i][j]=++cnt; } } for(int i=0;i<=cnt;i++) f[i]=i; for(int i=1;i<=n;i++){ char s[N];scanf("%s",s+1); for(int j=1;j<=m;j++){ if(s[j]=='1') add(i,j); } } if(F(0)==F(1)) ans=0; int Q;scanf("%d",&Q); for(int i=1;i<=Q;i++){ int a,b;scanf("%d%d",&a,&b); add(a+1,b+1); if(ans==-1&&F(0)==F(1)) ans=i; } printf("%d\n",ans); }}
0 0
- hdu5652 India and China Origins
- hdu5652 India and China Origins
- hdu5652 India and China Origins bfs+二分
- hdu5652 India and China Origins 深搜+二分
- hdu5652 India and China Origins(并查集)
- 并查集 hdu5652 India and China Origins
- hdu5652 India and China Origins(并查集)
- hdu5652 India and China Origins(并查集联通)
- hdu5652 India and China Origins(并查集)
- hdu5652 India and China Origins BFS+二分 或 二维的并查集
- hdu 5652 India and China Origins(二分)
- hdu 5652 India and China Origins (★)
- hdu 5652 India and China Origins
- hdu 5652 India and China Origins
- HDU 5652 India and China Origins
- HDU 5652 India and China Origins
- 【HDU5652 BestCoder Round 77 (div1) B】【并查集 or 二分答案BFS】India and China Origins 两国中间出现山脉 最早时间断绝联系
- HDU 5652 India and China Origins(并查集)
- 设计模式之 概览(设计模式是什么 设计模式分类)
- epoll用发
- Java IO流总结
- Thread详解5:synchronized的使用(一)
- hashtable的C++实现
- hdu5652 India and China Origins
- 12.结账流程(Checkout Process)
- ie兼容css-zoom作用
- POJ 2513(欧拉回路+ 并查集+字典树)
- IOS单例的实现
- IO五种模式
- 8. String to Integer (atoi)
- HDU 1166 敌兵布阵 线段树入门_单点更新
- iGrimace IG V8 一键新机安装方式;