URAL 1080 Map Colouring [简单DFS]
来源:互联网 发布:python教学视频哪个好 编辑:程序博客网 时间:2024/06/03 20:49
题意:给定一个地图,有若干国家,有两种颜色,要求相邻国家的着色不同,确定方案。
思路:按要求第一个国家为X=0,则其相邻国家为1-X,若与先前矛盾则输出-1,注意相邻判断结束,将其边断开,以免干扰下次搜索。
#include <string.h>#include <iostream>using namespace std;#define MAX 100int map[MAX][MAX];int color[MAX];bool f;int n;void dfs(int x,int c){ if(f) return; if(color[x]!=2){ if(color[x]==c) return; else{ f=true; return; } } color[x]=c; for(int i=0;i<n;i++){ if(map[i][x]){ map[i][x]=map[x][i]=0; dfs(i,1-c); } }}int main(){ while(cin>>n){ memset(map,0,sizeof(map)); f=false; for(int i=0;i<n;i++){ color[i]=2; int t; while(cin>>t&&t) map[t-1][i]=map[i][t-1]=1; } for(int i=0;i<n;i++) if(color[i]==2) dfs(i,0); if(!f){ for(int i=0;i<n;i++) cout<<color[i]; cout<<endl; } else cout<<"-1"<<endl; } return 0;}/*测试:Sample Input32 03 00Sample Output010*/
- URAL 1080 Map Colouring [简单DFS]
- URAL 1080 Map Coloring (BFS)
- Map Coloring - URAL 1080 涂色问题
- ural 2002. Test Task 简单模拟 stl map的使用
- ural 1033. Labyrinth(dfs)
- ural 1171 DFS+DP
- URAL 1033 Labyrinth(DFS)
- ural 1119. Metro DFS
- ural 1033. Labyrinth dfs
- URAL 1033 Labyrinth (DFS)
- URAL 1242 Werewolf (DFS)
- URAL.1033 Labyrinth (DFS)
- ural 1033. Labyrinth dfs
- ural 1224. Spiral dfs
- ural 1080. Map Coloring
- ural 1080. Map Coloring
- Ural 1060. Flip Game dfs
- URAL 1298. Knight(DFS)
- cvpr09 最佳论文 基于暗原色先验的单一图像去雾算法
- 用汇编的眼光看C++(之const属性)
- android 基础
- 用汇编的眼光看C++(之模板类)
- centos6.x86_64 启动自动执行脚本错误sudo: sorry, you must have a tty to run sudo
- URAL 1080 Map Colouring [简单DFS]
- 多进程与多线程
- shiro配置文件路径问题的探索
- H.263与H.264的比较
- 用汇编的眼光看C++ (之x86汇编)
- 装备设计思路整理
- 将Java项目打包成可执行文件(.exe)
- 用汇编的眼光看C++(开篇)
- 有效的使用和设计COM智能指针——条款25:思考兼容取地址操作符带来的若干问题