http://acm.hdu.edu.cn/showproblem.php?pid=1811

 #include <stdio.h>
#include <string.h>
#include <queue>
#include <vector>
using namespace std;
const int N=;
vector<int>V[N];
queue<int>q;
char oper[N];
int in[N],f[N];
int a[N],b[N];
int n,m,sum;
void init()
{
sum = n;
while(!q.empty()) q.pop();
for (int i = ; i <= n; i++)
{
f[i] = i;
in[i] = ;
V[i].clear();
}
}
int Find(int x)
{
if(x!=f[x]) return f[x]=Find(f[x]);
return x;
}
int Merge(int x,int y)
{
x = Find(x);
y = Find(y);
if(x!=y)
{
f[y] = x;
return ;
}
return ;
}
void toposort()
{
int flag = ;
for (int i = ; i < n; i++)
{
if(in[i]==&&Find(i)==i)
q.push(i);
}
while(!q.empty())
{
if (q.size()>)flag = ;
int u = q.front();
q.pop();
sum--;
for (int i = ; i < V[u].size(); i++)
{
if(--in[V[u][i]]==)
q.push(V[u][i]);
}
}
if (sum > ) printf("CONFLICT\n");
else if (flag) printf("UNCERTAIN\n");
else printf("OK\n");
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
init();
int u,v;
for (int i = ; i < m; i++)
{
scanf("%d %c %d",&a[i],&oper[i],&b[i]);
if(oper[i]=='=')
{
if(Merge(a[i],b[i]))
sum--;
}
}
for (int i = ; i < m; i++)
{
if(oper[i]=='=') continue;
u = Find(a[i]);
v = Find(b[i]);
if(oper[i]=='>')
{
V[u].push_back(v);
in[v]++;
}
if(oper[i]=='<')
{
V[v].push_back(u);
in[u]++;
}
}
toposort();
}
return ;
}

Rank of Tetris(topsort)的更多相关文章

  1. HDU 1811 Rank of Tetris(拓扑排序+并查集)

    题目链接: 传送门 Rank of Tetris Time Limit: 1000MS     Memory Limit: 32768 K Description 自从Lele开发了Rating系统, ...

  2. ACM: hdu 1811 Rank of Tetris - 拓扑排序-并查集-离线

    hdu 1811 Rank of Tetris Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & % ...

  3. hdu 1811 Rank of Tetris (并查集+拓扑排序)

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  4. Rank of Tetris HDU--1881

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  5. HDU 1811 Rank of Tetris 拓补排序+并查集

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) [ ...

  6. Rank of Tetris

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...

  7. HDU 1811 Rank of Tetris(并查集+拓扑排序 非常经典)

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. hdu 1811 Rank of Tetris (拓扑 & 并查集)

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  9. HDU 1811 Rank of Tetris(并查集按秩合并+拓扑排序)

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

随机推荐

  1. UVA - 12113 Overlapping Squares(dfs+回溯)

    题目: 给定一个4*4的棋盘和棋盘上所呈现出来的纸张边缘,问用不超过6张2*2的纸能否摆出这样的形状. 思路: dfs纸的张数,每一张中枚举这张纸左上角这个点的位置,暴力解题就可以了. 这个题的覆盖太 ...

  2. [USACO15JAN]Grass Cownoisseur

    \(tarjan\)缩点+\(DAG\)上最长路. 求一个以\(1\)为起点的最长路和一个以\(1\)为终点的最长路,然后找那个逆行边就行了. 然后这个我\(RE\)了好久,原因是\(vector\) ...

  3. PyQt5Icon图标(Icon)无法显示问题

    PyQt5中设置图标无法显示 以下源码来源PyQt5教程http://zetcode.com/gui/pyqt5/firstprograms/ import sys from PyQt5.QtWidg ...

  4. Multisim破解教程

    转载:http://www.121down.com/article/article_52879.html

  5. 第一个Maven工程的目录结构和文件内容及联网问题

    [第一个Maven工程] ①目录结构 Hello |---src |---|---main |---|---|---java |---|---|---resources |---|---test |- ...

  6. 互联网DSP广告系统架构及关键技术解析

    互联网DSP广告系统架构及关键技术解析 宿逆 关注 1.9 2017.10.09 17:05* 字数 8206 阅读 10271评论 2喜欢 60 广告和网络游戏是互联网企业主要的盈利模式 广告是广告 ...

  7. PatentTips – Shader Interfaces

    BACKGROUND Today's graphic processing units (GPUs) host all of the computations necessary to generat ...

  8. 洛谷—— P2049 魔术棋子

    https://www.luogu.org/problem/show?pid=2049 题目描述 在一个M*N的魔术棋盘中,每个格子中均有一个整数,当棋子走进这个格子中,则此棋子上的数会被乘以此格子中 ...

  9. Mutual Training for Wannafly Union #5

    A(UVA12336) 题意:给一个n*m(n,m<=1e5)的棋盘,棋盘上有一些障碍点不能放棋子,现在要在棋盘上放4个棋子,满足A->B->C->D->A,其中走的规则 ...

  10. Ubuntu 16.04下UML建模PowerDesigner的替代ERMaster和MySQL Workbench

    ERMaster是Eclipse的一个插件,小巧,支持连接各种数据库,还能生成代码等.安装参考:http://www.cnblogs.com/EasonJim/p/6170686.html 当然还有一 ...