拓扑排序<反向拓扑+有向环的判断>
#include <set>
#include <map>
#include <cmath>
#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
typedef long long LL;
using namespace std;
const int inf=INT_MAX;
const int maxn=10000+10;
int n,m;
int cast[maxn];
int R[maxn];
vector<int>E[maxn];
void init()
{
for(int i=0;i<=n;i++)
{
E[i].clear();
cast[i]=0;
R[i]=0;
}
}
int main ()
{
while(~scanf("%d%d",&n,&m))
{
init();
int s,t,count=0;//count统计入度可以达到0的边的个数
for(int i=1;i<=m;i++)//建v表
{
scanf("%d%d",&s,&t);
E[t].push_back(s);
R[s]++;
}
queue<int>que;
for(int i=1;i<=n;i++)
{
if(R[i]==0)
{
que.push(i);
R[i]--;
cast[i]=888;
count++;
}
}
while(!que.empty())
{
int id=que.front();
que.pop();
int l=(int)E[id].size();
for(int i=0;i<l;i++)
{
int t=E[id][i];
R[t]--;
if(R[t]==0)
{
que.push(t);
count++;
cast[t]=cast[id]+1;
}
}
}
if(count==n)//没有回路
{
int sum=0;
for(int i=1;i<=n;i++)
sum+=cast[i];
printf("%d\n",sum);
}
else
{
printf("-1\n");
}
}
return 0;
}
拓扑排序<反向拓扑+有向环的判断>的更多相关文章
- ACM/ICPC 之 拓扑排序-反向(POJ3687)
难点依旧是题意....需要反向构图+去重+看题 POJ3687-Labeling Balls 题意:1-N编号的球,输出满足给定约束的按原编号排列的重量序列,如果有多组答案,则输出编号最小的Ball重 ...
- HDU2647(拓扑排序+反向建图)
题意不说了,说下思路. 给出的关系是a要求的工资要比b的工资多,因为尽可能的让老板少付钱,那么a的工资就是b的工资+1.能够确定关系为a>b,依据拓扑排序建边的原则是把"小于" ...
- HDU 4857 逃生 【拓扑排序+反向建图+优先队列】
逃生 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...
- HDU 2647 Reward 【拓扑排序反向建图+队列】
题目 Reward Dandelion's uncle is a boss of a factory. As the spring festival is coming , he wants to d ...
- hdu 4857 逆向拓扑排序+反向输出
/*一组测试实例 4 4 2 3 1 2 4 */ #include<stdio.h> #include<string.h> #include<queue> usi ...
- hdoj--4857--逃生(拓扑排序+反向建图)
逃生 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- [bzoj3887][Usaco2015 Jan]Grass Cownoisseur_trajan_拓扑排序_拓扑序dp
[Usaco2015 Jan]Grass Cownoisseur 题目大意:给一个有向图,然后选一条路径起点终点都为1的路径出来,有一次机会可以沿某条边逆方向走,问最多有多少个点可以被经过?(一个点在 ...
- POJ 1094 Sorting It All Out (拓扑排序,判断序列是否唯一,图是否有环)
题意:给出n个字符,m对关系,让你输出三种情况: 1.若到第k行时,能判断出唯一的拓扑序列,则输出: Sorted sequence determined after k re ...
- 大数据工作流任务调度--有向无环图(DAG)之拓扑排序
点击上方蓝字关注DolphinScheduler(海豚调度) |作者:代立冬 |编辑:闫利帅 回顾基础知识: 图的遍历 图的遍历是指从图中的某一个顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点 ...
随机推荐
- Docker 制作mysql镜像
# 拉取Ubuntu镜像 docker pull docker.io/ubuntu: # 运行一个容器 docker run --name mysql -p 33:3306 -v /mysql:/va ...
- ESFramework ——可堪重任的网络通信框架
ESFramework是一套性能卓越.稳定可靠.强大易用的跨平台通信框架,支持应用服务器集群.其内置了消息的收发与自定义处理(支持同步/异步模型).消息广播.P2P通道.文件传送(支持断点续传).心跳 ...
- NOIP2011-普及组复赛模拟试题-第二题-买票
题目背景 Background Ztc真的遇上黄牛了... 题目描述 Description 周末Ztc想去剧场看演出,但是他没有票.这时,救世主Wzj出现了,他慷慨地愿意卖给Ztc一些票. ...
- 在 iOS 应用中直接跳转到 AppStore 的方法
找到应用程序的描述链接,在itunes中找到相应的应用,(如下图),点击免费右边的下方向键,选择复制链接,就拿到了对应的app的描述链接 比如:https://itunes.apple.com/c ...
- javascript焦点图左右按钮简单自动轮播
这里把css和html合在一块写了,这块代码只是布局和样式不是重点 <!DOCTYPE html> <html> <head> <meta charset=& ...
- .net 2.0 后台多线程
System.Threading.Thread thread1 = new System.Threading.Thread(delegate() { Web.BLL.banpaiconfig.Vide ...
- 移动前端不得不了解的HTML5 head 头标签(中下篇)
SEO 优化部分 页面标题<title>标签(head 头部必须) <title>your title</title> 页面关键词 keywor ...
- 移动UI
UI设计需要关注:色彩,信息布局,交互流程,用户体验,尺寸等
- Python 数据分析包:pandas 基础
pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 类似于 Numpy 的核心是 ndarray,pandas 也是围绕着 Series 和 DataFrame 两个核心数据 ...
- VMware中Ubuntu 14.04出现Unknown Display问题解决
如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 今天安装完Ubuntu 14.04后,在虚拟机中显示不全,本来调节一下屏幕分辨率就可以 ...