Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
0ms一发AC,不需要任何搜索,贴一发代码,四色定理直接染#include <stdio.h> #include <string.h> bool grid[26][26]; int color[26]; int lowbit(int x) { return x&(-x); } int getColorNum(int x) { switch(x) { case 0x1:return 1; case 0x2:return 2; case 0x4:return 3; case 0x8:return 4; } } int main() { char c; int n,ans,tmp; while(scanf("%d\n",&n)&&n) { ans=0; memset(grid,false,sizeof(grid)); for(int i=0;i<n;++i) { getchar(); getchar(); while((c=getchar())!='\n') grid[i][c-'A']=true; color[i]=0xf; } for(int i=0;i<n;++i) { color[i]=lowbit(color[i]); tmp=getColorNum(color[i]); if(tmp>ans) ans=tmp; if(ans==4) break; for(int j=i+1;j<n;++j) if(grid[i][j]) color[j]^=color[i]; } ans==1?printf("%d channel needed.\n",ans):printf("%d channels needed.\n",ans); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator