uva193 - Graph Coloring
2014-08-05 11:30
246 查看
GraphColoring
Youaretowriteaprogramthattriestofindanoptimalcoloringforagivengraph.Colorsareappliedtothenodesofthegraphandtheonlyavailablecolorsareblackandwhite.Thecoloringofthegraphiscalledoptimalifamaximumofnodesisblack.Thecoloringisrestrictedbytherulethatnotwoconnectednodesmaybeblack.Figure:Anoptimalgraphwiththreeblacknodes
InputandOutput
Thegraphisgivenasasetofnodesdenotedbynumbers,
,andasetofundirectededgesdenotedbypairsofnodenumbers
,
.Theinputfilecontainsmgraphs.Thenumbermisgivenonthefirstline.Thefirstlineofeachgraphcontainsnandk,thenumberofnodesandthenumberofedges,respectively.Thefollowingklinescontaintheedgesgivenbyapairofnodenumbers,whichareseparatedbyaspace.Theoutputshouldconsistsof2mlines,twolinesforeachgraphfoundintheinputfile.Thefirstlineofshouldcontainthemaximumnumberofnodesthatcanbecoloredblackinthegraph.Thesecondlineshouldcontainonepossibleoptimalcoloring.Itisgivenbythelistofblacknodes,separatedbyablank.
SampleInput
1 68 12 13 24 25 34 36 46 56
SampleOutput
3 145
求图的最大独立集,即把尽量多的结点图黑使得任意两个黑点不相邻
#include<cstdio>
#include<cstring>
#include<iostream>
#include<vector>
#include<algorithm>
usingnamespacestd;
constintmaxn=100+5;
intm,n,k;
vector<int>G[maxn];
intnode[maxn],black_node[maxn];
intans;
enum{white,black};
voiddfs(intd,intcnt){
if(d==n){
if(cnt>ans){
intj=0;
for(inti=0;i<n;i++)if(node[i])black_node[j++]=i+1;
ans=cnt;
}
return;
}
if(n-d+cnt<=ans)
return;
//尝试黑的
intok=true;
node[d]=black;
for(inti=0;i<G[d].size();i++){
intv=G[d][i];
//两个相邻黑点
if(node[v]==black){
ok=false;
break;
}
}
if(ok)dfs(d+1,cnt+1);
//尝试白的
node[d]=white;
dfs(d+1,cnt);
}
intmain()
{
#ifndefONLINE_JUDGE
freopen("./uva193.in","r",stdin);
#endif
intx,y;
cin>>m;
while(m--){
cin>>n>>k;
memset(G,0,sizeof(G));
memset(node,0,sizeof(node));
ans=0;
for(inti=0;i<k;i++){
cin>>x>>y;
x--;y--;
G[x].push_back(y);
G[y].push_back(x);
}
dfs(0,0);
printf("%d\n",ans);
for(inti=0;i<ans-1;i++)
printf("%d",black_node[i]);
printf("%d\n",black_node[ans-1]);
}
return0;
}
相关文章推荐
- UVa 193 & POJ 1419 - Graph Coloring
- UVA 193 Graph Coloring
- uva - 193 Graph Coloring(回溯)
- UVa 193 - Graph Coloring
- uva 193 Graph Coloring(图染色 dfs回溯)
- uva 193 - Graph Coloring
- uva 193 Graph Coloring(回溯)
- uva 193 Graph Coloring
- UVA - 193 Graph Coloring
- uva 193 Graph Coloring
- UVA - 193 Graph Coloring(回溯)
- uva 193 Graph Coloring(DFS)
- UVA 193 - Graph Coloring
- uva 193 - Graph Coloring
- uva 193 Graph Coloring( 图染色 ) DFS+回溯
- UVa 193 - Graph Coloring(graph theory, brute force, backtracking, NP-complete, maximum independent set.)
- UVA - 193 Graph Coloring
- UVA 193 Graph Coloring
- UVa 193 - Graph Coloring
- poj 1419 Graph Coloring uva 193 - Graph Coloring (图着色问题,dfs)