题目链接:点击::here~~~

DFS

#include<stdio.h>
#include<string.h>
int vis[105],map[105][105];
int n,m;
bool dfs(int u)
{vis[u]=-1;for(int v=0;v<n;v++)if(map[u][v]){if(vis[v]<0) return false;else if(!vis[v]&&!dfs(v)) return false;}vis[u]=1; return true;
}
bool toposort()
{memset(vis,0,sizeof(vis));for(int u=0;u<n;u++)if(!vis[u]){if(!dfs(u)) return false;}return true;
}
int main()
{int u,v;while(scanf("%d%d",&n,&m),n,m){memset(map,0,sizeof(map));for(int i=0;i<m;i++){scanf("%d%d",&u,&v);map[u][v]=1;}if(!toposort())  printf("NO\n");else printf("YES\n");}}

二:

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<vector>
using namespace std;
vector<int> g[105];
int indu[105],vis[105];
int n,m;
void toposort()
{int p,flag=0;int k;for(int i=0;i<n;i++){p=0;for(int j=0;j<n;j++){if(indu[j]==0&&!vis[j]){p=1;k=j;vis[k]=1;break;}}if(p!=1){flag=1;break;}for(int r=0;r<g[k].size();r++)  indu[g[k][r]]--;}if(flag) printf("NO\n");else printf("YES\n");
}
int main()
{int u,v;while(scanf("%d%d",&n,&m),n){memset(indu,0,sizeof(indu));memset(vis,0,sizeof(vis));memset(g,0,sizeof(g));for(int i=0;i<m;i++){scanf("%d%d",&u,&v);g[u].push_back(v);indu[v]++;}toposort();}
}

hdu-3342-Legal or Not--拓扑排序//两种解法相关推荐

  1. HDU 3342 Legal or Not(拓扑排序)

    描述 ACM-DIY is a large QQ group where many excellent acmers get together. It is so harmonious that ju ...

  2. 拓扑排序两种实现方式

    文章出处:极客时间<数据结构和算法之美>-作者:王争.该系列文章是本人的学习笔记. 拓扑排序能解决的问题 在一个项目中会有很多源代码文件.编译器在编译代码的时候需要按照依赖关系,依次编译每 ...

  3. usaco Ordered Fractions 顺序的分数(两种解法)

    这题很好玩,这里有两种解法. 第一种我自己写的,先找到所有的既约真分数,然后写了一个cmp函数进行排序最后输出.我写的时候还在想这章不是搜索吗这跟搜索关系不大吧,难道是怕我们思维定式化故意出的题不是搜 ...

  4. 约瑟夫环问题的两种解法(详解)

    约瑟夫环问题的两种解法(详解) 题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆 ...

  5. 牛客--追债之旅 两种解法

    文章目录 第一种 第二种: 一共两种解法,所以即便你不会最短路,也可以做,甚至爆搜+剪枝的时间和空间消耗小于最短路做法. 第一种 题意: 小明现在要追讨一笔债务,已知有n座城市,每个城市都有编号,城市 ...

  6. leetcode 73 矩阵置零 C++ 两种解法

    leetcode 73 两种解法~~,没有一个是我想出来的,哈哈~~ one class Solution {public:void setZeroes(vector<vector<int ...

  7. 北林oj-算法设计与分析-Line up in the canteen(两种解法,附思路)

    描述 One day, there is a kind of new delicious food from one of the windows in the canteen. All studen ...

  8. 洛谷——P1597 语句解析(两种解法)

    P1597 语句解析(两种解法) 题目背景 木有背景-- 题目描述 一串长度不超过 255 的 PASCAL 语言代码,只有 a,b,c 3 个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变 ...

  9. 整数拆分的两种解法(已完成)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 整数拆分 ...

最新文章

  1. AI领域的人才短缺,原因是什么?该如何解决?
  2. IT十八掌作业_java基础第十一天_集合
  3. quartz Cron-Expression的表达式
  4. 比尔盖茨:希望我们的家庭能够获得空间和隐私
  5. 怎么把matlab仿真数据压缩,JPEG图像压缩编码及其MATLAB仿真实现(1)
  6. C语言每日一题之No.12
  7. python如何问问题_Python简单问答程序如何解决问题循环
  8. 机器学习_回归和分类的区别
  9. 微信小程序引入ColorUI
  10. 基于区块链的医疗供应链数据隐私保护分布式信息隐藏框架
  11. vue遍历Map集合
  12. stm32L1xx系列低功模式配置+STOP模式+RTC唤醒
  13. 如何删除PPT中自带的切换动画?
  14. IDEA中,更换背景颜色
  15. Java实战---搜搜移动业务大厅
  16. 嵌入式软件开发下的数据积累
  17. python3下载手机安卓版,python3.0手机版下载
  18. 视频号如何给账号定位,如何做好视频号的定位
  19. Unity 之 音频类型和编码格式介绍
  20. 用计算机怎么求锐角三角函数值,用计算器求锐角三角函数值与由锐角三角函数值求锐角.doc...

热门文章

  1. 做运营,你需要“一张画布绘到底”
  2. 如何设计让用户喜欢且令人尖叫的产品?
  3. 神策 FM | 我绝对想要那个 VS 我可能想要那个
  4. 标签体系、用户分群、用户画像「玩味」解读,你沦为形式主义了吗?
  5. 两种方式:mysql查看正在执行的sql语句
  6. Spring AOP原理及拦截器
  7. [javaSE] 多线程(守护线程)
  8. Java运算符优先级(转)
  9. 分享:Android程序员,必备精品网站大汇总
  10. ubuntu9.04换源