HDU 3342
#include<stdio.h>
#include<string.h>
int degree[101],vis[101],map[101][101];
int main()
{
int n,m,a,b,i,j,temp,flag;
while(~scanf("%d%d",&n,&m) && n)
{
memset(degree,0,sizeof(degree));
memset(vis,0,sizeof(vis));
memset(map,0,sizeof(map));
flag = 0;
while(m--)
{
scanf("%d%d",&a,&b);
if(!map[a][b]) //不计重边;
{
degree[b]++;
map[a][b] = 1;
}
}
for(i = 0;i < n;i ++)
{
for(j = 0;j < n;j ++) //查找入度为0的点;
{
if(degree[j] == 0 && vis[j] == 0)
temp = j;
}
vis[temp] = 1; //找到即把此点销毁;
for(j = 0;j < n;j ++)
{
if(j != temp && map[temp][j] == 1 && vis[j] == 0) //处理与此点相关的点和边;
{
degree[j]--;
map[temp][j] = 0; //销毁边;
}
}
}
for(i = 0;i < n;i ++) //验证是否还有入度不为0的点;
{
if(degree[i])
{
flag = 1;
break ;
}
}
if(!flag)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
#include<string.h>
int degree[101],vis[101],map[101][101];
int main()
{
int n,m,a,b,i,j,temp,flag;
while(~scanf("%d%d",&n,&m) && n)
{
memset(degree,0,sizeof(degree));
memset(vis,0,sizeof(vis));
memset(map,0,sizeof(map));
flag = 0;
while(m--)
{
scanf("%d%d",&a,&b);
if(!map[a][b]) //不计重边;
{
degree[b]++;
map[a][b] = 1;
}
}
for(i = 0;i < n;i ++)
{
for(j = 0;j < n;j ++) //查找入度为0的点;
{
if(degree[j] == 0 && vis[j] == 0)
temp = j;
}
vis[temp] = 1; //找到即把此点销毁;
for(j = 0;j < n;j ++)
{
if(j != temp && map[temp][j] == 1 && vis[j] == 0) //处理与此点相关的点和边;
{
degree[j]--;
map[temp][j] = 0; //销毁边;
}
}
}
for(i = 0;i < n;i ++) //验证是否还有入度不为0的点;
{
if(degree[i])
{
flag = 1;
break ;
}
}
if(!flag)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
HDU 3342的更多相关文章
- HDU.3342 Legal or Not (拓扑排序 TopSort)
HDU.3342 Legal or Not (拓扑排序 TopSort) 题意分析 裸的拓扑排序 根据是否成环来判断是否合法 详解请移步 算法学习 拓扑排序(TopSort) 代码总览 #includ ...
- HDU 3342 Legal or Not(判断是否存在环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3342 Legal or Not Time Limit: 2000/1000 MS (Java/Othe ...
- hdu 3342 Legal or Not
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3342 Legal or Not Description ACM-DIY is a large QQ g ...
- HDU 3342 Legal or Not(拓扑排序判断成环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3342 题目大意:n个点,m条有向边,让你判断是否有环. 解题思路:裸题,用dfs版的拓扑排序直接套用即 ...
- HDU 3342 Legal or Not (图是否有环)
题意: 给出n个人的师徒关系,如有 a是b的师傅,b是c的师傅,c是a的师傅,这样则不合法,输出NO,否则输出YES. 思路: 每段关系可以看成一条有向边,从师傅指向徒弟,那么徒弟的徒子徒孙都不可能再 ...
- hdu 3342 Legal or Not(拓扑排序) HDOJ Monthly Contest – 2010.03.06
一道极其水的拓扑排序……但是我还是要把它发出来,原因很简单,连错12次…… 题意也很裸,前面的废话不用看,直接看输入 输入n, m表示从0到n-1共n个人,有m组关系 截下来m组,每组输入a, b表示 ...
- hdu 3342 Legal or Not(拓扑排序)
Legal or Not Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total ...
- hdu 3342 拓扑排序 水
好久没切题 先上水题! 拓扑排序! 代码: #include<iostream> #include<cstdio> #include<cstring> using ...
- HDU 3342 Legal or Not (图是否有环)【拓扑排序】
<题目链接> 题目大意: 给你 0~n-1 这n个点,然后给出m个关系 ,u,v代表u->v的单向边,问你这m个关系中是否产生冲突. 解题分析: 不难发现,题目就是叫我们判断图中是否 ...
随机推荐
- BrowserSync:跨浏览器实时同步预览
BrowserSync:跨浏览器实时同步预览 2016.09.11 官方网站:https://www.browsersync.io/ 项目仓库:https://github.com/Browsersy ...
- 省市选择(基于zepto.js)
效果如下: <div class="clList overflow-h mt75"> <select class="pull-left cl-35 se ...
- JavaScript 继承的几种模式
/** * Created by 2016 on 2016/6/5. */ //1.原型链继承 //把子类的原型,定义为超类的实例 通过原型来访问超类的方法和属性 function Person(){ ...
- memcached全面剖析--4
memcached的分布式算法 memcached的分布式 正如第1次中介绍的那样, memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能. 服务器端仅包括 第2次. 第 ...
- 重新开始学习c#啦,希望能坚持下去!
过了这么多年,还是感觉自己喜欢C#,喜欢编程,虽然自己什么技术也没有:做的项目也不算是项目:
- 关于WPF中Popup控件的小记
在wpf开发中,常需要在鼠标位置处弹出一个“提示框”(在此就以“提示框”代替吧),通过“提示框”进行信息提示或者数据操作,如果仅仅是提示作用,使用ToolTip控件已经足够,但是有些是需要在弹出的框中 ...
- 使用css3背景渐变中的透明度来设置不同颜色的背景渐变
为了添加透明度,我们使用 rgba() 函数来定义颜色结点.rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明.rgba()后面的 ...
- linux shell命令的常用快捷键
一些shell的常用快捷键. Ctrl + a 切换到命令行开始 Ctrl + e 切换到命令行末尾 Ctrl + l 清除屏幕内容 Ctrl + u 清除剪切光标之前的内容 Ctrl + ...
- Delphi新语法和ifthen的扩展联想
Delphi之前已经重载了好多个ifthen函数 Math单元 ): Integer; overload; inline; ): Int64; overload; inline; ): UInt64; ...
- ctrl+c关闭多线程python程序
项目中经常需要用到多线程,如果一个python程序用了多线程,当子线程没有结束时,用ctrl+c是关闭不了主线程的,这时候就只能用kill命令杀掉,这样会很麻烦. 所以探讨了下怎么ctrl+C关闭多线 ...