dfs
#include <cstdio>
#include <cstring>
using namespace std; const int maxn = 1e5+;
struct Edge{
int lst;
int to;
}edge[maxn*];
int head[maxn]; int qsz; inline void add(int u, int v) {
edge[qsz].lst = head[u];
edge[qsz].to = v;
head[u] = qsz++;
} int vis[maxn];
int ans[maxn];
int qtot;
bool dfs(int u) {
int v, i;
vis[u] = -;
for (i=head[u]; i; i=edge[i].lst) {
v = edge[i].to;
if (vis[v] == -) return false;
else if (!vis[v] && !dfs(v)) return false;
}
ans[qtot--] = u;
vis[u] = ;
return true;
} int main()
{
int t, n, m, i, j, u, v;
scanf("%d", &t);
while (t--) {
// init;
qsz = ;
memset(head, , sizeof(head));
memset( vis, , sizeof( vis));
scanf("%d%d", &n, &m);
qtot = n;
for (i=; i<=m; ++i) {
scanf("%d%d", &u, &v);
add(v, u);
}
for (i=; i<=n; ++i)
if (!vis[i])
if (!dfs(i))
break; if (!qtot) printf("Correct\n");
else printf("Wrong\n");
} return ;
}

bfs
#include <cstdio>
#include <cstring>
using namespace std; const int maxn = 1e5+;
struct Edge{
int lst;
int to;
}edge[maxn*];
int head[maxn];
int qsz; int inq[maxn];
int q[maxn];
int qhead;
inline void add(int u, int v) {
edge[qsz].lst = head[u];
edge[qsz].to = v;
head[u] = qsz++;
} int main()
{
int t, n, m, i, j, u, v;
scanf("%d", &t);
while (t--) {
// init;
qsz = ;
memset(head, , sizeof(head));
memset(inq, , sizeof( inq));
qhead = ; scanf("%d%d", &n, &m);
for (i=; i<=m; ++i) {
scanf("%d%d", &u, &v);
add(u, v);
inq[v]++;
}
for (i=; i<=n; ++i)
if (!inq[i])
q[qhead++] = i;
for (i=; i<qhead; ++i) {
for (j=head[q[i]]; j; j=edge[j].lst) {
v = edge[j].to;
inq[v]--;
if (!inq[v]) q[qhead++] = v;
}
}
if (qhead == n) printf("Correct\n");
else printf("Wrong\n");
} return ;
}

 

拓扑排序bfs_dfs的更多相关文章

  1. 算法与数据结构(七) AOV网的拓扑排序

    今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...

  2. 有向无环图的应用—AOV网 和 拓扑排序

    有向无环图:无环的有向图,简称 DAG (Directed Acycline Graph) 图. 一个有向图的生成树是一个有向树,一个非连通有向图的若干强连通分量生成若干有向树,这些有向数形成生成森林 ...

  3. 【BZOJ-2938】病毒 Trie图 + 拓扑排序

    2938: [Poi2000]病毒 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 609  Solved: 318[Submit][Status][Di ...

  4. BZOJ1565 [NOI2009]植物大战僵尸(拓扑排序 + 最大权闭合子图)

    题目 Source http://www.lydsy.com/JudgeOnline/problem.php?id=1565 Description Input Output 仅包含一个整数,表示可以 ...

  5. 图——拓扑排序(uva10305)

    John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...

  6. Java排序算法——拓扑排序

    package graph; import java.util.LinkedList; import java.util.Queue; import thinkinjava.net.mindview. ...

  7. poj 3687(拓扑排序)

    http://poj.org/problem?id=3687 题意:有一些球他们都有各自的重量,而且每个球的重量都不相同,现在,要给这些球贴标签.如果这些球没有限定条件说是哪个比哪个轻的话,那么默认的 ...

  8. 拓扑排序 - 并查集 - Rank of Tetris

    Description 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球. 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球 ...

  9. *HDU1285 拓扑排序

    确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

随机推荐

  1. Python Rabbit 广播模式

    Exchange 在RabbitMQ下进行广播模式需要用到,exchange这个参数,它会把发送的消息推送到queues队列中,exchange必须要知道,它接下来收到的消息要分给谁,是要发给一个qu ...

  2. go 编译:交叉编译&编译执行过程

    1. 交叉编译 编译Windows程序和mac程序 GOOS=windows GOARCH-amd64 go build main.go 转自:https://www.cnblogs.com/mafe ...

  3. kruscal重构树略解

    我们先看一道题:Luogu P4197 Peaks 这道题珂以用启发式合并+主席树来做 那么强制在线呢?(bzoj 3551 [ONTAK2010]Peaks加强版) 离线做法就不行了 我们就要用一个 ...

  4. Codeforces 17E Palisection - Manacher

    题目传送门 传送点I 传送点II 传送点III 题目大意 给定一个串$s$询问,有多少对回文子串有交. 好像很简单的样子. 考虑能不能直接求,感觉有点麻烦.因为要考虑右端点在当前回文子串内还有区间包含 ...

  5. 通过 UC2000-VG-32G设备呼叫不进号问题排查

    1.登陆设备管理页面: 呼叫发起时,呼叫状态显示振铃,但是不进号. 2.查看设备cdr. 3.得出结论:NO CARRIER 由于号码频繁呼叫次数太多运营商对其死锁.

  6. Spring错误——Spring AOP——org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException

    背景:学习切面,测试前置通知功能,xml配置如下 <?xml version="1.0" encoding="UTF-8"?> <beans ...

  7. 异常:unity3d ArgumentException: The Assembly System.Configuration is referenced by System.Data.

    异常:ArgumentException: The Assembly System.Configuration is referenced by System.Data. But the dll is ...

  8. [BOZJ2721]樱花

    题目求\(\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\)已知n, x和y的正整数解的个数 设z=\(n!\) \(\frac{1}{x}+\frac{1}{y}=\fra ...

  9. localStorage(本地存储器)、sessionStorage(会话存储)

      设置:localStorage.setItem("token", JSON.parse(res).data.token);   获取:that.token = localSto ...

  10. 『流畅的Python』第5章笔记_一等函数