/*
这道题如果按照度为0的节点来判断的时候,将度为0的节点和其相连的节点(度数并减去1)
从图中去掉,如果度为0的节点的个数为0个但是图中的节点没有都去掉的 时候那么说明
出现了回路!用这种方法必须将重边去除掉! 所以推荐用dfs方式进行判断!这种方式还是比较直观的!
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std; int used[];
int deg[];
int map[][];
int sum;
bool topoSort(){
for(int i=; i<=sum; ++i){
int cnt=, p;
for(int j=; j<; ++j)
if(used[j] && deg[j]==) {
++cnt;
p=j;
}
if(cnt==) return false;
for(int j=; j<; ++j)
if(map[p][j]){
map[p][j]=;
--deg[j];
}
deg[p]=-;
}
return true;
} int main(){
int m;
char ch[];
while(cin>>m){
memset(used, , sizeof(used));
memset(deg, , sizeof(deg));
memset(map, , sizeof(map));
while(m--){
cin>>ch;
used[ch[]-'A'] =;
used[ch[]-'A'] =;
if(ch[]=='>'){
if (map[ch[]-'A'][ch[]-'A'] != ) {//去掉多重边
++deg[ch[]-'A'];
map[ch[]-'A'][ch[]-'A']=;
}
}
else{
if (map[ch[]-'A'][ch[]-'A'] != ) {
++deg[ch[]-'A'];
map[ch[]-'A'][ch[]-'A']=;
}
}
}
sum=;
for(int i=; i<; ++i)
if(used[i]) ++sum;
if(topoSort())
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return ;
} */ #include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int map[][];
int vis[]; bool dfs(int cur){
vis[cur]=-;
for(int i=; i<; ++i)
if(map[cur][i]){
if(vis[i]==-) return false;
if(!vis[i] && !dfs(i)) return false;
}
vis[cur]=;
return true;
} int main(){
int m;
char ch[];
while(cin>>m){
memset(vis, , sizeof(vis));
memset(map, , sizeof(map));
while(m--){
cin>>ch;
if(ch[]=='>')
map[ch[]-'A'][ch[]-'A']=;
else
map[ch[]-'A'][ch[]-'A']=;
}
int flag=;
for(int i=; i<; ++i)
if(!vis[i])
if(!dfs(i)){
flag=;
break;
}
if(flag) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
return ;
}

ZZUOJ 1199 大小关系(拓扑排序,两种方法_判断入度和dfs回路判断)的更多相关文章

  1. CSS实现背景图尺寸不随浏览器大小而变化的两种方法

    一些网站的首页背景图尺寸不随浏览器缩放而变化,本例使用CSS 实现背景图尺寸不随浏览器缩放而变化,方法一. 把图片作为background,方法二使用img标签.喜欢的朋友可以看看   一些网站的首页 ...

  2. Java对象排序两种方法

    转载:https://blog.csdn.net/wangtaocsdn/article/details/71500500 有时候需要对对象列表或数组进行排序,下面提供两种简单方式: 方法一:将要排序 ...

  3. CSS实现自适应不同大小屏幕的背景大图的两种方法(转自简书)

    CSS实现自适应不同大小屏幕的背景大图的两种方法 一张清晰漂亮的背景图片能给网页加分不少,设计师也经常会给页面的背景使用大图,我们既不想图片因为不同分辨率图片变形,也不希望当在大屏的情况下,背景有一块 ...

  4. 转:python list排序的两种方法及实例讲解

    对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...

  5. 用Java集合中的Collections.sort方法对list排序的两种方法

    用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  6. python list排序的两种方法及实例讲解

    对List进行排序,Python提供了两个方法方法1 用List的内建函数list sort进行排序list sort(func=None, key=None, reverse=False)Pytho ...

  7. C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法。

    原文:C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法. 一般我们在开发Windows Phone App时,需要取得萤幕的大小来自定义最佳化控制项的大小,但是开如何取得萤 ...

  8. 使用Idea当中的快捷键快速查看继承关系或其图表的两种方法

    一.Idea当中有两种方法可以查看继承关系 在Idea当中选中一个类,然后按Ctrl+H,可以快速查看当前所选类的继承关系,如下图: ​ 同样选中一个类,按CTRL+ALT+U,即可生成当前类的继承关 ...

  9. HDU 1160 排序或者通过最短路两种方法解决

    题目大意: 给定一堆点,具有x,y两个值 找到一组最多的序列,保证点由前到后,x严格上升,y严格下降,并把最大的数目和这一组根据点的编号输出来 这里用两种方法来求解: 1. 我们可以一开始就将数组根据 ...

随机推荐

  1. torch-ios框架XCODE使用备忘

    1.首先编译框架   ./generate_ios_framework 2.把框架包含进project  在general-link Frameweork and Libraries 加入这个框架,注 ...

  2. Django 中 如何使用 settings.py 中的常量

    在用django 框架开发 python web 程序的时候 , 在模板页面经常会用到 settings.py 中设置的常量,比如MEDIA_URL, 我尝试过在模板页面用类似如下的方式 程序代码 { ...

  3. How to create Web Deployment Package and install the package

    Create Web Deployment Package To configure settings on the Connection tab In the Publish method drop ...

  4. 6.用CXF编写基于Spring的WebService

    首先是服务器端: //实体类 public class Weather { private String region;//区域编码 private String regionName;//区域名称 ...

  5. CSS中强大的EM

    (转)作者:dearjohn ,发布于2012-7-31 http://www.uml.org.cn/html/201207311.asp 使用CSS也好久了,但一直都是在使用“px”来设置Web元素 ...

  6. nodejs安装/运行脚本

    本文主要介绍nodejs在windows下安装及运行脚本. 安装nodejs 先从nodejs官网:http://nodejs.org/下载对应的系统的安装包,比如用于64位系统的最新0.10.21的 ...

  7. 用UWP实现一个和win10设置页面类似的布局

    不知道有人注意过Win10中的设置页面的布局没?那个页面会根据不同的窗口宽度来调节显示的内容,甚至来后退按钮的操作在不同的宽度也是不同的,看图: 是不是有点cool呢,这篇文章,我们就来做一个类似的布 ...

  8. dojo/_base/lang源码分析

    dojo/_base/lang模块是一个工具模块,但几乎用dojo开发的app都会用到这个模块.模块中的方法能够在某些开发场景中避免繁冗的代码,接下来我们一起看看这些工具函数的使用和原理(仅仅是原理的 ...

  9. Entity Framework 5.0系列之自动生成Code First代码

    在前面的文章中我们提到Entity Framework的"Code First"模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Framework P ...

  10. 欢迎访问我的快站fbengine.kuaizhan.com

    欢迎访问我的快站 fbengine.kuaizhan.com