poj-1129-Channel Allocation-四色定理
来源:互联网 发布:opencv 分割算法 编辑:程序博客网 时间:2024/05/07 20:06
题意:
给你一个n,代表电台的数量。电台的编号是从A到Z。
然后给你他们之间的邻接关系,让你求出最小需要的频率数。
要求任意两个相邻的电台之间不允许用同一频率。
做法:
由于范围比较小,所有爆搜都没关系。但是如果电台的数量比较大的话,就需要运用四色定理了。
四色定理:
对于任意一张地图,最多只使用四种颜色就可以把地图任意两个相邻的国家染成不同的颜色。
对于这道题目可以看成给电台染色,任意两个电台用线连起来,任意两条线都是不相交的,这就符合四色定理。
注意:
注意在需要的频率为1的时候,channel无s,其他的时候channels有s。
#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int main(){ int i,n,j; int map[101][101]; char str[1000]; while(scanf("%d%*c",&n)&&n) { memset(map,0,sizeof(map)); for(i=1;i<=n;i++) { gets(str); for(j=2;j<strlen(str);j++) { map[i][str[j]-'A'+1]=1; } } int visit[27]; int color[27]; memset(visit,0,sizeof(visit)); memset(color,0,sizeof(color)); int maxlen; maxlen=0; for(i=1;i<=n;i++) { memset(visit,0,sizeof(visit)); for(j=1;j<=n;j++) { if(map[i][j]!=0) { if(color[j]) { visit[color[j]]=1; } } } for(j=1;j<=26;j++) { if(visit[j]==0) { color[i]=j; if(j>maxlen)maxlen=j; break; } } if(j==4)break; } if(maxlen==1) { printf("1 channel needed.\n"); } else printf("%d channels needed.\n",maxlen); } return 0;}
- poj 1129 Channel Allocation (四色定理)
- poj-1129-Channel Allocation-四色定理
- POJ 1129 Channel Allocation dfs(四色定理)
- poj 1129 Channel Allocation(四色定理+着色问题)
- POJ 1129-Channel Allocation(四色定理+迭代深搜)
- POJ 1129 Channel Allocation (四色定理+DFS)
- POJ 1129:Channel Allocation 四色定理+暴力搜索
- POJ-1129-Channel Allocation-dfs搜索+四色定理
- POJ 1129 Channel Allocation DFS+四色定理
- POJ 1129 Channel Allocation(DFS + 四色定理)
- [Poj 1129] Channel Allocation DFS+四色定理剪支
- POJ Channel Allocation 1129(dfs+四色定理)
- POJ 1129 Channel Allocation (dfs+四色定理)
- Channel Allocation 四色定理
- ZOJ 1084 Channel Allocation 四色定理
- 四色定理。。zoj 1084 channel allocation
- POJ 1129Channel Allocation(四色+dfs搜索剪枝)
- poj 1129 Channel Allocation
- elasticsearch索引修复
- 读取Execl数据到Datatable或DataSet时 日期单元格出现乱码的解决方案
- OC的KVO模式漫谈
- GetParent
- 内存地址
- poj-1129-Channel Allocation-四色定理
- TinyOS学习笔记10-节点与计算机利用串口通信1
- USB HID报告及报告描述符简介
- 爱我的与弃我的:生日抒情小记
- 读写分离
- 使用spring配置文件实现AOP
- 乔布斯谈软件、技术以及网络的重要性读后感
- 以前的一些记录
- 《大江》企业歌曲录制进行中