hdu 1811 Rank of Tetris
来源:互联网 发布:linux c mmap 编辑:程序博客网 时间:2024/05/20 14:25
并查集+拓扑排序
#include<iostream>#include<vector>#include<queue>#define maxn 20005using namespace std;int n,m;vector<int>g[maxn];int head[maxn];struct stu{int a,b;string c;};stu mapp[maxn];int f[maxn];void init(){for(int i=0;i<maxn;i++) f[i]=i,g[i].clear(),head[i]=0;}int dfs(int x){if(f[x]!=x) f[x]=dfs(f[x]);return f[x];}void merge(int x,int y){int rx=dfs(x);int ry=dfs(y);if(rx!=ry) f[ry]=rx;}int add(int x,int y){g[x].push_back(y);head[y]++;}void topo(){queue<int>root;int flag=0;for(int i=0;i<n;i++){if(f[i]==i&&!head[i]) root.push(dfs(i));}int re=0;while(root.size()){int x=root.front();root.pop();if(root.size()!=0) flag=1;re++;head[x]--;for(int i=0;i<g[x].size();i++) { head[g[x][i]]--; if(!head[g[x][i]]) root.push(g[x][i]); } }for(int i=0;i<n;i++) if(f[i]!=i) re++;if(re!=n){cout<<"CONFLICT"<<endl;return;}if(flag==1){cout<<"UNCERTAIN"<<endl;return;} cout<<"OK"<<endl;}int main(){cin.sync_with_stdio(false);while(cin>>n>>m){init();int flag=0;for(int i=0;i<m;i++){cin>>mapp[i].a>>mapp[i].c>>mapp[i].b;if(mapp[i].c=="=") merge(mapp[i].a,mapp[i].b);}for(int i=0;i<m;i++){mapp[i].a=dfs(mapp[i].a);mapp[i].b=dfs(mapp[i].b);if(mapp[i].c=="=") continue;if(mapp[i].b==mapp[i].a) flag=1;if(mapp[i].c=="<") add(mapp[i].a,mapp[i].b);else add(mapp[i].b,mapp[i].a);}if(flag) cout<<"CONFLICT"<<endl;else topo();}return 0;}
0 0
- hdu 1811 Rank of Tetris
- hdu 1811 Rank of Tetris
- hdu 1811 Rank of Tetris
- hdu 1811 Rank of Tetris
- hdu 1811 Rank of Tetris
- HDU 1811 Rank of Tetris
- HDU 1811 Rank of Tetris
- hdu-1811 Rank of Tetris
- HDU 1811 Rank of Tetris
- hdu 1811 Rank of Tetris
- hdu 1811 Rank of Tetris
- HDU 1811 Rank of Tetris
- HDU - 1811 Rank of Tetris
- HDU 1811 Rank of Tetris
- hdu 1811 Rank of Tetris
- HDU 1811 Rank of Tetris
- HDU-1811-Rank of Tetris
- HDU 1811 Rank of Tetris
- DMA函数分析
- 美团 二维数组打印
- linux sed 命令详解
- ACM--Maximum Increase--最长递增数组序列
- 1162. 【普及组模拟赛】最大杂置(set)
- hdu 1811 Rank of Tetris
- 【u201】矩形覆盖
- python基础之列表常用操作及知识点小结
- git
- windows Socket编程之完成端口模型
- PHP 文件下载 浅析
- Java线程(三):线程协作-生产者/消费者问题
- Android Drawable之ScaleDrawable
- java 文件夹及其子目录 子文件的复制