标签:des style http color os strong io for
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 12096 | Accepted: 6191 |
Description
Input
Output
Sample Input
2 A: B: 4 A:BC B:ACD C:ABD D:BC 4 A:BCD B:ACD C:ABD D:ABC 0
Sample Output
1 channel needed. 3 channels needed. 4 channels needed.
Source
具体参考:http://baike.baidu.com/view/4061222.htm?fr=aladdin
AC代码:
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int G[30][30];
int f[30];
int a[30];
int n,ans;
int judge(int k){
for(int i=1;i<k;i++)
if(G[k][i] && f[k]==f[i])
return 0;
return 1;
}
int main(){
while(cin>>n&&n){
memset(f,0,sizeof(f));
memset(G,0,sizeof(G));
for(int i=1;i<=n;i++){
char ch[30];
cin>>ch;
for(int j=2;j<strlen(ch);j++){
G[i][ch[j]-'A'+1]=1;
}
}
ans=99;
int k=1;
while(k>=1){
f[k]++;
while(f[k]<=4)
if(judge(k))
break;
else
f[k]++;
if(f[k]<=4 && k==4){ //成功
int mx=0;
memset(a,0,sizeof(a));
for(int i=1;i<=n;i++){ //找出用了几种颜色
if(a[f[i]]==0){
a[f[i]]++;
mx++;
}
}
if(ans>mx)
ans=mx;
}
else if(f[k]<=4 && k<4){ //访问下一节点
k++;
}
else{
f[k]=0;
k--; //回溯
}
}
if(ans==1)
cout<<ans<<' '<<"channel needed."<<endl;
else
cout<<ans<<' '<<"channels needed."<<endl;
}
return 0;
}poj 1129(图的着色问题),布布扣,bubuko.com
标签:des style http color os strong io for
原文地址:http://blog.csdn.net/my_acm/article/details/38332837