小z的地图
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 101(30 users) Total Accepted: 28(24 users) Rating: Special Judge: No
Description
小z有一张被分割成了N块不规则的多边形区域的地图,他将每块多边形区域从1到N依次标号。
他现在想将所有多边形区域涂上颜色,并且让所有相邻的多边形区域颜色不同。小z想知道
最少需要多少种颜色可以将地图涂满。

Input
输入第一行为组数T(T<=15)。
对于每组数据第一行为两个整数N和M(1 <= N <= 30)。
分别代表有多边形的数量,以及多边形之间的相邻的数量。
接下来有M个整数对a b。代表多边形a和多边形b相连。
Output
对于每组数据输出最少需要的颜色数量。
Sample Input
2
7 9
1 2 1 3 2 3 2 5 3 5 3 4 3 6 4 6 4 7  
5 4
1 2 2 3 3 4 4 5
Sample Output
3
2
Hint
已知对于地图着色,最多只需四种颜色即可保证相邻多边形区域颜色不同,并且将地图涂满。

思路:其实我们将一个顶点的单独拿出来,就行了,然后从两种色的开始找,不是两种色就是三种否则就是四种。因为最多四种都可以涂满。其余的dfs跑就行。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<vector>
using namespace std;
int n,m,nn;
struct edge
{int from;int to;
};vector<int>G[33];vector<edge>edges;int color[33];
void addedges(int x,int y){edge a={x,y};edges.push_back(a);edge b={y,x};edges.push_back(b);G[x].push_back(edges.size()-2);G[y].push_back(edges.size()-1);}int fun(int count,int x){for(int i=0;i<G[count].size();i++){if(color[edges[G[count][i]].to]==x) return 1;}return 0;}int dfs(int count,int x){   color[count]=x;if(fun(count,x)) return 0;if(count==n){return 1;}for(int i=1;i<=nn;i++){if(dfs(count+1,i)) return 1;}color[count+1]=0;return 0;}
int main()
{int t;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)G[i].clear();edges.clear();for(int i=1;i<=m;i++){int x,y;scanf("%d %d",&x,&y);addedges(x,y);}if(n==1) {printf("1\n");continue;}int i;for( i=2;i<=3;i++){   memset(color,0,sizeof(color));nn=i;if(dfs(0,0)) break;}if(i>3) printf("4\n");else printf("%d\n",i);}
}

hrbust 1614 小z的地图 dfs相关推荐

  1. 【0521模拟赛】小Z爱划水

    题目描述 小Z和其它机房同学都面临一个艰难的抉择,那就是 要不要划水? 每个人都有自己的一个意见,有的人想做题,有的人想划水. 当然,每个人只能选择一个事情做.如果一个人做的事情和他想做的不同,那么他 ...

  2. 2038: [2009国家集训队]小Z的袜子(hose) - BZOJ

    Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把这N只 ...

  3. HLG 1916 小Z的卡片 (set 难题)恏似系亚洲区噶题

    链接: http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1916 Descriptio ...

  4. 【微信小程序】地图(97/100)

    UI布局 <!--pages/map/map.wxml--> <view class="page-section page-section-gap">< ...

  5. NOI20102010年,世博会在中国上海举办,吸引了数以千万计的中外游客前来参观。暑假期间小Z也来到了上海世博园, 她对世博园的拥挤早有所闻,对有的展馆甚至要排上好几个小时的队才能进入也做好了充分

    NOI2010 2010年,世博会在中国上海举办,吸引了数以千万计的中外游客前来参观.暑假期间小Z也来到了上海世博园, 她对世博园的拥挤早有所闻,对有的展馆甚至要排上好几个小时的队才能进入也做好了充分 ...

  6. P1494 小Z的袜子

    P1494 小Z的袜子 莫队板子题,对询问进行排序+分块,从而得到巧妙的复杂度 对于L,R的询问. 设其中颜色为x,y,z的袜子的个数为a,b,c... 那么答案即为 (a*(a-1)/2+b*(b- ...

  7. 【0521模拟赛】小Z爱数学

    题目描述 小Z想求F(n,k),F(n,k)表示n的所有因数pi中,满足n/pi <= k 的和. 小Z发现还是很水,所以他决定加大难度. 求 小Z还准备了很多个询问.现在你来解决一下吧. 输入 ...

  8. BZOJ 2038: [2009国家集训队]小Z的袜子(hose)【莫队算法裸题学习笔记】

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MB Submit: 9894  Solved: 4561 [Su ...

  9. [BZOJ 2038][2009国家集训队]小Z的袜子(hose)(莫队)

    Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把这N只 ...

最新文章

  1. 【独家】搜狗黎志:创新和竞争是推动时代发展的原动力
  2. ELK5.3环境部署
  3. 这些年遇到的坑爹问题汇总
  4. iOS 使用 MailCore2
  5. 使用 C# 下载文件的十八般武艺
  6. 采用批处理命令对文件进行解压及采用SQLCMD进行数据库挂载
  7. Redis:复制,第3部分——redis-py和Python中的Redi哨兵一起使用
  8. 解决虚拟机克隆后eth0不见的问题
  9. python function terminated un_Python: 僵尸进程的产生和清除方法
  10. ios中获取各种文件的目录路径方法
  11. html插入循环图片,javascript – HTML5在带有for循环的画布上绘制图片?
  12. 20145239杜文超 《Java程序设计》第3周学习总结
  13. Ubuntu 20.04 nvtop 编译安装
  14. windows便签工具在哪 windows11的便签在哪里打开
  15. 一个学生成绩管理系统c语言,一个学生成绩管理系统C语言源代码
  16. offline RL介绍
  17. 解决Windows密码错误无法进入系统的问题
  18. Intel 12代处理器主机 安装Ubuntu
  19. 安装node.js(‘npm‘ 不是内部或外部命令,也不是可运行的程序)
  20. 2011年中国城市高校数量排行榜(前十名)

热门文章

  1. python爬虫 --爬取药网的药品信息-写入excel表中
  2. JS校验二代身份证格式
  3. 简单的切水果游戏制作
  4. Springboot vue 前后分离 跨域 Activiti6 工作流 集成代码生成器 shiro权限
  5. 惠普compaq nx6120笔记本bios设置u盘启动步骤
  6. 关于CPU、指令集、架构、芯片的一些科普
  7. Codeforces 980B Marlin(构造)
  8. The 2019 ACM-ICPC Shannxi J. And And And (点分治模板题)
  9. 运行cv2.xfeatures2d.SIFT_create()时报错The function/feature is not implemented的解决方法,亲测可用
  10. 2022-08-14 网工进阶(二十六) MSTP-网络层次、端口角色、端口状态、拓扑计算