hdu 4751(dfs染色)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4751
思路:构建新图,对于那些两点连双向边的,忽略,然后其余的都连双向边,于是在新图中,连边的点是能不在同一个图中的,于是我们可以用dfs染色的方法来判断是否存矛盾。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<vector> 6 using namespace std; 7 8 int map[111][111]; 9 int color[111]; 10 int n; 11 vector<vector<int> >g; 12 13 bool dfs(int u,int father,int state) 14 { 15 color[u]=state; 16 for(int i=0;i<g[u].size();i++){ 17 int v=g[u][i]; 18 if(v==father)continue; 19 if(color[v]&&color[u]==color[v]){ 20 return false; 21 }else if(!color[v]&&!dfs(v,u,3-state)){ 22 return false; 23 } 24 } 25 return true; 26 } 27 28 29 int main() 30 { 31 int x; 32 while(~scanf("%d",&n)){ 33 memset(map,0,sizeof(map)); 34 memset(color,0,sizeof(color)); 35 for(int i=1;i<=n;i++){ 36 while(true){ 37 scanf("%d",&x); 38 if(x==0)break; 39 map[i][x]=1; 40 } 41 } 42 g.clear(); 43 g.resize(n+2); 44 for(int i=1;i<=n;i++){ 45 for(int j=i+1;j<=n;j++){ 46 if(map[i][j]&&map[j][i])continue; 47 g[i].push_back(j); 48 g[j].push_back(i); 49 } 50 } 51 int flag=1; 52 for(int i=1;i<=n;i++){ 53 if(g[i].size()>0&&!color[i]){ 54 if(!dfs(i,i,1)){ 55 flag=0; 56 break; 57 } 58 } 59 } 60 flag?puts("YES"):puts("NO"); 61 } 62 return 0; 63 }
View Code
hdu 4751(dfs染色)相关推荐
- AT2362 [AGC012B] Splatter Painting(思维、dfs染色、剪枝)
AT2362 [AGC012B] Splatter Painting 题意 给一个n个点m条边的无向图,有q次操作 第i次操作,给出v,d,c,把所有到点v的距离不超过d的点都染上颜色c 问最后每个点 ...
- Codeforces Codeforces Round #383 (Div. 2) E (DFS染色)
题目链接:http://codeforces.com/contest/742/problem/E 题意: 有一个环形的桌子,一共有n对情侣,2n个人,一共有两种菜. 现在让你输出一种方案,满足以下要求 ...
- P1457 城堡 The Castle(DFS+染色)
题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张"幸运爱尔兰"(一种彩票).结果这张彩票让他获得了这次 ...
- CodeForces - 780C Andryusha and Colored Balloons(dfs染色)
Andryusha goes through a park each day. The squares and paths between them look boring to Andryusha, ...
- hdu 3560(dfs判环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3560 思路:dfs判环,这里成环的条件是环中的每个点的出度和入度都为1,因此dfs的时候只须判断的相连 ...
- HDU 2212 DFS (伪·DFS)
链接 : http://acm.hdu.edu.cn/showproblem.php?pid=2212 本来是想练下DFS的,结果被题目标题坑了(HDU也搞标题党?),更坑的是题还这么水 直接输出四个 ...
- hdu 1175 DFS连连看
题意:中文题就不说了. 思路:DFS,关键是那个转折大于两次就不行的情况怎么深搜,可以枚举递归起始点的四个方向,如果在DFS中的方向K和递归中的不一样而且还满足深搜条件,那么转折次数就加一. 这道题W ...
- poj 1564 Sum It Up | zoj 1711 | hdu 1548 (dfs + 剪枝 or 判重)
Sum It Up Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Sub ...
- hdu 5188 dfs+二分
get了很多新技能 当时想到了用dfs,但是排序用的是限制时间排序,一直没搞出来. 正解: 二分用时,dfs判断,为了顺利进行做题,需要按照做题开始时间排序 还可以用dp 题意: 作为史上最强的刷子之 ...
最新文章
- Oracle RESETLOGS 和 NORESETLOGS 区别说明
- VB.NET实现DirectPlay(3)Find HOSTs
- Java之多线程里面的锁理解以及synchronized与Lock的区别
- 熊猫直播 使用什么sdk_没什么可花的-但是16项基本操作才能让您开始使用熊猫
- Hibernate的数据删除,更改
- Java 连接LDAP实现验证与查询用户
- DB2开发系列之一——基本语法
- 6-2 函数式编程例一
- 计算机软件自学基础,计算机软件基础一高等教育自学考试试题与答案
- Unity3D基础25:AudioSource声音组件
- Asp.net自定义控件开发任我行(7)-注册自定义事件
- linux工具消失了,输入法工具栏为什么不见了?
- C# vb .net实现相机视图效果滤镜
- 哈夫曼树的构造与哈夫曼编码
- go vender 的环境搭建和使用
- dojo学习日记(6)——dojo/_base/fx的 fadeOut()方法
- 设计模式之 State(状态模式)通俗理解
- c# iot .net 树莓派读取土壤湿度感应器 代码实例
- java文件太大 上传不了怎么办_上传文件(200M)过大失败,想提高成800M
- 这几个步骤教你如何音频翻译成文字
热门文章
- 安装Live communication server 2005存档服务
- WinDbg用法详解
- C#应用NPOI实现导出EXcel表格中插入饼状图(可实现动态数据生成)
- 关于Facebook iOS UI 工具ComponentKit简介
- 读阿里机器学习平台的一些总结
- weblogic集群安装心得-程序包发布
- Kinect For Windows V2开发日志一:开发环境的配置
- 月薪3万的程序员都避开了哪些坑
- android onTouch()与onTouchEvent()的区别
- 1022.在线视频—IT售前营销讲座(三)售前情报、策划和资源协调