Channel Allocation 贪心涂色
1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 #include <cmath>
5 #include <algorithm>
6 #include <string>
7 #include <vector>
8 #include <set>
9 #include <map>
10 #include <stack>
11 #include <queue>
12 #include <sstream>
13 #include <iomanip>
14 using namespace std;
15 typedef long long LL;
16 const int INF = 0x4fffffff;
17 const double EXP = 1e-5;
18 const int MS = 28;
19 const int SIZE = 100005;
20
21
22 int edges[MS][MS];
23 char str[MS];
24 int used[MS];
25 int color[MS];
26 int ans,n;
27
28 void greedy()
29 {
30 for(int i=0;i<n;i++)
31 {
32 memset(used,0,sizeof(used));
33 for(int j=0;j<n;j++)
34 {
35 if(edges[i][j]&&color[j]!=-1)
36 used[color[j]]=1;
37 }
38 int k;
39 for(k=0;k<i;k++)
40 {
41 if(!used[k])
42 break;
43 }
44 color[i]=k;
45 }
46 ans=0;
47 for(int i=0;i<n;i++)
48 if(ans<color[i])
49 ans=color[i];
50 ans++;
51 }
52
53
54 int main()
55 {
56 while(scanf("%d",&n)&&n)
57 {
58 memset(color,0xff,sizeof(color));
59 memset(edges,0,sizeof(edges));
60 for(int i=0;i<n;i++)
61 {
62 scanf("%s",str);
63 int len=strlen(str);
64 for(int j=2;j<len;j++)
65 edges[i][str[j]-'A']=edges[str[j]-'A'][i]=1;
66 }
67 greedy();
68 if(ans==1) // 注意单复数
69 printf("%d channel needed.\n",ans);
70 else
71 printf("%d channels needed.\n",ans);
72 }
73 return 0;
74 }
Channel Allocation 贪心涂色的更多相关文章
- Channel Allocation(DFS)
Channel Allocation Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other) ...
- POJ 1129:Channel Allocation 四色定理+暴力搜索
Channel Allocation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13357 Accepted: 68 ...
- poj1129 Channel Allocation(染色问题)
题目链接:poj1129 Channel Allocation 题意:要求相邻中继器必须使用不同的频道,求需要使用的频道的最少数目. 题解:就是求图的色数,这里采用求图的色数的近似有效算法——顺序着色 ...
- POJ 1129 Channel Allocation(DFS)
Channel Allocation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13173 Accepted: 67 ...
- 1260: [CQOI2007]涂色paint
Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续 ...
- poj1129 Channel Allocation
Channel Allocation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14361 Accepted: 73 ...
- 【BZOJ-1260】涂色paint 区间DP
1260: [CQOI2007]涂色paint Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 1147 Solved: 698[Submit][Sta ...
- 并查集(涂色问题) HDOJ 4056 Draw a Mess
题目传送门 题意:给出一个200 * 50000的像素点矩阵,执行50000次操作,每次把一个矩形/圆形/菱形/三角形内的像素点涂成指定颜色,问最后每种颜色的数量. 分析:乍一看,很像用线段树成段更新 ...
- 迭代加深搜索 POJ 1129 Channel Allocation
POJ 1129 Channel Allocation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14191 Acc ...
随机推荐
- -bash: ll: 未找到命令
第一步将alias ll='ls -l'添加到/etc/profile # head /etc/profile# /etc/profilealias ll='ls -l'# System wide e ...
- Centos7如何安装开源办公软件Libreoffice
在Centos7安装了WPS,但是用了没两月就出问题,无法正常使用.(准确来说,安装的WPS一直都有各种问题存在,但是没有影响到主要功能也就将就着用,后来是直接输入不了文字) 既然是开源系统,自然而然 ...
- Jinja2模板概述
例子一 循环语句 [root@m01 ~]# cat upstream.conf upstream web { {% for i in range(1,11) %} server 172.16.1.{ ...
- IT菜鸟之虚拟机VMware的使用
虚拟机安装完成了,以下是虚拟机的使用. 双击快捷方式,打开vmware虚拟机. 点击创建新虚拟机,这里可以选择创建方式,可以点击典型并一路下一步创建,我们这里讲自定义创建. 这里选择兼容版本,大家可以 ...
- Linux 文件隐藏属性-创建文件默认权限
Linux特殊权限介绍 # password原本只有root可以访问但是为什么普通用户在修改密码的时候也可以改里面的内容. [root@gong ~]# ll /usr/bin/passwd -rws ...
- shell初学之PHP
初次接触脚本,写了一个通过Apache实现PHP动态网站的脚本: #!/bin/bash yum -y install php rm -rf /etc/httpd/conf.d/welcome.con ...
- linux环境下时区无法设置(UTC无法更改为CST)的问题解决
在进行linux下修改时区的时候 总是修改不了 修改成 Asia/Shanghai 但是 时区总是 +0000 却不是想要的+0800 按照网上的方法 A方法:tzselect:执行tzselect ...
- xtrabackup(innobackupex)使用详解
innobackupex实际上是percona-xtrabackup的perl整合脚本,功能当然更强大一些. xtrabackup备份实际上是在线的物理热备,为什么和么说呢,因为实际上他是以拷贝mys ...
- RGB-D相机视觉SLAM
RGB-D相机视觉SLAM Dense Visual SLAM for RGB-D Cameras 开源代码地址: vision.in.tum.de/data/software/dvo 摘要 本文提 ...
- CUDA Pro:通过向量化内存访问提高性能
CUDA Pro:通过向量化内存访问提高性能 许多CUDA内核受带宽限制,而新硬件中触发器与带宽的比率不断提高,导致带宽受限制的内核更多.这使得采取措施减轻代码中的带宽瓶颈非常重要.本文将展示如何在C ...