题意:给出n,m,人的编号为 0到n-1,再给出m个关系,问能不能够进行拓扑排序

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int indegree[1005],queue[1005],head[1005];
struct Edge
{
int to;
int next;
} edge[1005];
int main()
{
int n,m,i,j,k,iq,a,b;
while(scanf("%d %d",&n,&m)!=EOF&&n&&m)
{
memset(head,-1,sizeof(head));
memset(indegree,0,sizeof(indegree));
for(i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
edge[i].to=b;
edge[i].next=head[a];
head[a]=i;
indegree[b]++;
}
iq=0;
for(i=0;i<n;i++)
{
if(indegree[i]==0)
{
queue[iq++]=i;
}
} for(i=0;i<iq;i++)
{
for(k=head[queue[i]];k!=-1;k=edge[k].next)
{
indegree[edge[k].to]--;
if(indegree[edge[k].to]==0)
{
queue[iq++]=edge[k].to;
}
}
}
if(iq==n) printf("YES\n");
else
printf("NO\n");
}
}

  

最新文章

  1. 看JVM就推荐这本书
  2. noip2008 双栈排序
  3. Android中Java与JavaScript之间交互(转)
  4. css 设计总结
  5. jQuery基础 -- 如何判断页面元素存在与否
  6. Groovy basic
  7. 上传图片shell绕过过滤的方法
  8. js认清this的第一步
  9. Activity Lifecycle
  10. PHP字符串拼接与MySQL语句
  11. linux文件操作命令--转
  12. Visual Assist X 快捷键
  13. windbg源码驱动调试 + 无源码驱动调试
  14. cocos开发插件笔记
  15. 函数作用域之闭包与this!
  16. 29.如何不用 transition 和 animation 也能做网页动画
  17. ios之两个view传值
  18. struts+spring+hibernate两张表字段名一样处理方法
  19. Jquery 技术小结
  20. bzoj4144【AMPPZ2014】Petrol

热门文章

  1. struts2学习之基础笔记6
  2. 在vue中使用less
  3. win32应用禁止改变窗口大小方法
  4. thinkphp 5 count()方法在控制器,模板中的使用方法
  5. 关于layui.laypage.render 刷新首页没有分页问题
  6. TCP/IP 三次握手和HTTP过程
  7. easyUI combobox的使用
  8. Anaconda3 安装报错 bunzip2: command not found
  9. java的算法实现冒泡
  10. [读书笔记] Python数据分析 (三) IPython