hdu 1811 Rank of Tetris
http://acm.hdu.edu.cn/showproblem.php?pid=1811
拓扑排序和并差集
#include <cstdio>
#include <queue>
#include <vector>
#include <cstring>
#include <algorithm>
#define maxn 10010
using namespace std;
int n,m,c;
int f[maxn],in[maxn];
vector<int>g[maxn];
struct node
{
int x,y;
char ch;
}p[maxn*];
void inti()
{
for(int i=; i<=n; i++)
{
f[i]=i; in[i]=;
g[i].clear();
}
} int find1(int x)
{
if(x==f[x]) return x;
return f[x]=find1(f[x]);
} void merge1(int a,int b)
{
int fa=find1(a);
int fb=find1(b);
if(fa!=fb)
{
f[fb]=fa;
}
} int topp()
{
int flag=;
queue<int>q;
for(int i=; i<n; i++)
{
if(!in[i]&&find1(i)==i) q.push(i);
}
int cnt=;
while(!q.empty())
{
if(q.size()>=) flag=-;
int x=q.front(); q.pop();
cnt++;
for(int i=; i<(int)g[x].size(); i++)
{
if((--in[g[x][i]])==) q.push(g[x][i]);
}
}
if(cnt<c) return ;
return flag;
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
inti();
c=n;
for(int i=; i<m; i++)
{
scanf("%d%*c%c%*c%d",&p[i].x,&p[i].ch,&p[i].y);
if(p[i].ch=='=')
{
merge1(p[i].x,p[i].y); c--;
}
}
bool flag=false;
for(int i=; i<m; i++)
{
if(p[i].ch=='=')
{
continue;
}
int x1=find1(p[i].x); int y1=find1(p[i].y);
if(x1==y1) flag=true;
if(p[i].ch=='<')
{
if(find(g[x1].begin(),g[x1].end(),y1)==g[x1].end())
{
g[x1].push_back(y1);
in[y1]++;
}
}
else if(p[i].ch=='>')
{
if(find(g[y1].begin(),g[y1].end(),x1)==g[y1].end())
{
g[y1].push_back(x1);
in[x1]++;
}
}
}
bool flag1=false;
if(!flag)
{
int cc=topp();
if(cc==) flag=true;
else if(cc==-) flag1=true;
}
if(flag)
{
printf("CONFLICT\n");
}
else if(flag1)
{
printf("UNCERTAIN\n");
}
else printf("OK\n");
}
return ;
}
hdu 1811 Rank of Tetris的更多相关文章
- ACM: hdu 1811 Rank of Tetris - 拓扑排序-并查集-离线
hdu 1811 Rank of Tetris Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & % ...
- HDU 1811 Rank of Tetris(并查集按秩合并+拓扑排序)
Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- HDU 1811 Rank of Tetris(拓扑排序+并查集)
题目链接: 传送门 Rank of Tetris Time Limit: 1000MS Memory Limit: 32768 K Description 自从Lele开发了Rating系统, ...
- hdu 1811 Rank of Tetris (并查集+拓扑排序)
Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- HDU 1811 Rank of Tetris 拓补排序+并查集
Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) [ ...
- HDU 1811 Rank of Tetris(并查集+拓扑排序 非常经典)
Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- hdu 1811 Rank of Tetris (拓扑 & 并查集)
Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- hdu 1811 Rank of Tetris - 拓扑排序 - 并查集
自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球. 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜, ...
- HDU 1811 Rank of Tetris 【拓扑排序 + 并查集】
自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球. 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜, ...
随机推荐
- LeetCode_Permutation Sequence
The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...
- Smartcard CA智能卡之调试
Integrated Circuit Card 集成电路卡,也叫CA卡或智能卡,将一个微电子芯片嵌入符合ISO 7816标准的卡基内,做成卡片形式,也是一个嵌入式小系统.由CPU,ROM,RAM及E ...
- spring framework 4 源码阅读(1) --- 前期准备
在开始看代码之前,需要做的第一件事是下载代码. 在这里:https://github.com/spring-projects/spring-framework 下载完成了发现使用gradle做的源代码 ...
- 一个跨域请求的XSS漏洞再续
上回提到,由于需要使用代理页面解决POST请求的跨域请求,需要在代理页面上执行传递的函数.所以我们做了白名单只有我们认可的回调函数才能在页面上执行,防止执行非法的JS方法,做脚本攻击. 我们所采用的方 ...
- 使用Python,字标注及最大熵法进行中文分词
使用Python,字标注及最大熵法进行中文分词 在前面的博文中使用python实现了基于词典及匹配的中文分词,这里介绍另外一种方法, 这种方法基于字标注法,并且基于最大熵法,使用机器学习方法进行训练, ...
- C# - 创建List属性的简单方法
不用担心List没有创建问题. private ObservableCollection<EquipmentItem> _optionalCollection; public Observ ...
- EL表达式使用之类switch语句
http://blacksonny.iteye.com/admin/blogs/1879878
- Bootstrap--本地安装使用
1.到官网下载:http://v2.bootcss.com 2.下载后是一个压缩文件,把它放在相应的工作目录下,然后解压. 3.新建一个测试文件,然后导入两个文件.
- matlab遗传算法
function [xv,fv] = myGA(fitness, a, b, NP, NG, Pc, Pm, eps) % 用遗传算法求解一维无约束优化问题 % % 待优化的目标函数 fitness ...
- AngularJS移动开发中的坑汇总
使用AngualrJs开发移动App已经快半年了,逐渐积累了非常多AngularJS的问题,特别是对于用惯了Jquery的开发人员,转到AngularJS还是须要克服非常多问题的.不像Jquery那样 ...