1 #include <stdio.h> 2 int G[100][100]={0},color[100]={0},ans=0,p,l,c;//p=point l==line c=color ans=ans:b 3 void f(int n)//l=level 4 { 5 int i,j,flag=0; 6 for(i=1;i<=c;i++)//给当前点逐个试颜色 7 { 8 for(j=1;j<=p;j++)//j=selecting point 9 { 10 if(G[n][j]==1&&color[j]==i) //测试颜色是否可行 11 flag=1; 12 } 13 if(flag==0) 14 { 15 color[n]=i;//着色 16 if(n==p) ans++; 17 else f(n+1);//找下一个 18 color[n]=0;//复原 19 } 20 else flag=0; 21 } 22 } 23 int main() 24 { 25 freopen("in.txt","r",stdin); 26 int x,y;//g=graphy 27 int i,j; 28 scanf("%d%d%d",&p,&l,&c); 29 /*打图*/ 30 for(i=1;i<=l;i++) 31 { 32 scanf("%d%d",&x,&y); 33 G[x][y]=1; 34 G[y][x]=1; 35 } 36 f(1); 37 printf("%d",ans); 38 return 0; 39 }
第一次接触图。。