ZZUOJ 1199 大小关系(拓扑排序,两种方法_判断入度和dfs回路判断)
/*
这道题如果按照度为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回路判断)的更多相关文章
- CSS实现背景图尺寸不随浏览器大小而变化的两种方法
一些网站的首页背景图尺寸不随浏览器缩放而变化,本例使用CSS 实现背景图尺寸不随浏览器缩放而变化,方法一. 把图片作为background,方法二使用img标签.喜欢的朋友可以看看 一些网站的首页 ...
- Java对象排序两种方法
转载:https://blog.csdn.net/wangtaocsdn/article/details/71500500 有时候需要对对象列表或数组进行排序,下面提供两种简单方式: 方法一:将要排序 ...
- CSS实现自适应不同大小屏幕的背景大图的两种方法(转自简书)
CSS实现自适应不同大小屏幕的背景大图的两种方法 一张清晰漂亮的背景图片能给网页加分不少,设计师也经常会给页面的背景使用大图,我们既不想图片因为不同分辨率图片变形,也不希望当在大屏的情况下,背景有一块 ...
- 转:python list排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...
- 用Java集合中的Collections.sort方法对list排序的两种方法
用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- python list排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法方法1 用List的内建函数list sort进行排序list sort(func=None, key=None, reverse=False)Pytho ...
- C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法。
原文:C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法. 一般我们在开发Windows Phone App时,需要取得萤幕的大小来自定义最佳化控制项的大小,但是开如何取得萤 ...
- 使用Idea当中的快捷键快速查看继承关系或其图表的两种方法
一.Idea当中有两种方法可以查看继承关系 在Idea当中选中一个类,然后按Ctrl+H,可以快速查看当前所选类的继承关系,如下图: 同样选中一个类,按CTRL+ALT+U,即可生成当前类的继承关 ...
- HDU 1160 排序或者通过最短路两种方法解决
题目大意: 给定一堆点,具有x,y两个值 找到一组最多的序列,保证点由前到后,x严格上升,y严格下降,并把最大的数目和这一组根据点的编号输出来 这里用两种方法来求解: 1. 我们可以一开始就将数组根据 ...
随机推荐
- torch-ios框架XCODE使用备忘
1.首先编译框架 ./generate_ios_framework 2.把框架包含进project 在general-link Frameweork and Libraries 加入这个框架,注 ...
- Django 中 如何使用 settings.py 中的常量
在用django 框架开发 python web 程序的时候 , 在模板页面经常会用到 settings.py 中设置的常量,比如MEDIA_URL, 我尝试过在模板页面用类似如下的方式 程序代码 { ...
- 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 ...
- 6.用CXF编写基于Spring的WebService
首先是服务器端: //实体类 public class Weather { private String region;//区域编码 private String regionName;//区域名称 ...
- CSS中强大的EM
(转)作者:dearjohn ,发布于2012-7-31 http://www.uml.org.cn/html/201207311.asp 使用CSS也好久了,但一直都是在使用“px”来设置Web元素 ...
- nodejs安装/运行脚本
本文主要介绍nodejs在windows下安装及运行脚本. 安装nodejs 先从nodejs官网:http://nodejs.org/下载对应的系统的安装包,比如用于64位系统的最新0.10.21的 ...
- 用UWP实现一个和win10设置页面类似的布局
不知道有人注意过Win10中的设置页面的布局没?那个页面会根据不同的窗口宽度来调节显示的内容,甚至来后退按钮的操作在不同的宽度也是不同的,看图: 是不是有点cool呢,这篇文章,我们就来做一个类似的布 ...
- dojo/_base/lang源码分析
dojo/_base/lang模块是一个工具模块,但几乎用dojo开发的app都会用到这个模块.模块中的方法能够在某些开发场景中避免繁冗的代码,接下来我们一起看看这些工具函数的使用和原理(仅仅是原理的 ...
- Entity Framework 5.0系列之自动生成Code First代码
在前面的文章中我们提到Entity Framework的"Code First"模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Framework P ...
- 欢迎访问我的快站fbengine.kuaizhan.com
欢迎访问我的快站 fbengine.kuaizhan.com