hdu 3342 Legal or Not
来源:互联网 发布:c语言随机数函数 编辑:程序博客网 时间:2024/05/16 01:24
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3342
拓扑排序。。
#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<queue>#include<map>using std::cin;using std::cout;using std::endl;using std::find;using std::sort;using std::map;using std::pair;using std::queue;using std::vector;using std::multimap;#define pb(e) push_back(e)#define sz(c) (int)(c).size()#define mp(a, b) make_pair(a, b)#define all(c) (c).begin(), (c).end()#define iter(c) decltype((c).begin())#define cls(arr,val) memset(arr,val,sizeof(arr))#define cpresent(c, e) (find(all(c), (e)) != (c).end())#define rep(i, n) for (int i = 0; i < (int)(n); i++)#define tr(c, i) for (iter(c) i = (c).begin(); i != (c).end(); ++i)const int N = 10010;typedef unsigned long long ull;struct Node { int to, next; };struct TopSort { Node G[N]; int tot, topNum, inq[N], head[N]; inline void init() { tot = topNum = 0; cls(inq, 0), cls(head, -1); } inline void add_edge(int u, int v) { G[tot].to = v; G[tot].next = head[u]; head[u] = tot++; } inline void built(int m) { int u, v; rep(i, m) { scanf("%d %d", &u, &v); inq[v]++; add_edge(u, v); } } inline void bfs(int n) { queue<int> q; rep(i, n) { if (!inq[i]) q.push(i); } while (!q.empty()) { int u = q.front(); q.pop(); topNum++; for (int i = head[u]; ~i; i = G[i].next) { if (--inq[G[i].to] == 0) q.push(G[i].to); } } puts(topNum == n ? "YES" : "NO"); }}work;int main() {#ifdef LOCAL freopen("in.txt", "r", stdin); freopen("out.txt", "w+", stdout);#endif int n, m; while (~scanf("%d %d", &n, &m), n + m) { work.init(); work.built(m); work.bfs(n); } return 0;}
0 0
- HDU 3342 Legal or Not
- hdu 3342 Legal or Not
- hdu 3342 Legal or Not
- Hdu 3342 Legal or Not
- hdu 3342 Legal or Not
- hdu 3342 Legal or Not
- hdu 3342 Legal or Not
- hdu-3342 Legal or Not
- HDU 3342 Legal or Not
- HDU 3342 Legal or Not
- HDU 3342 Legal or Not
- hdu 3342 Legal or Not
- hdu 3342 Legal or Not
- hdu 3342 Legal or Not
- HDU 3342 Legal or Not
- HDU 3342 Legal or Not
- Hdu 3342 Legal or Not
- HDU 3342 Legal or Not
- Java反射
- 测试测试
- 【整理】Linux内核中的atoi,itoa等函数
- tomcat启动两次的问题
- C++类中数据成员为类类型时,定义为对象还是定义为指针?
- hdu 3342 Legal or Not
- Java基础课——interface的理解
- Navicat Premium 10.1.6 注册码
- Android:Layout_weight的深刻理解
- 自动化运维那点事
- [HLOI 2015]Magic
- POJ 3461:Oulipo
- java需要学习那些知识?
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)