【PAT-一道看著很難的水題】L2-023. 圖著色問題
阿新 • • 發佈:2018-03-11
pre math urn 問題 png info scan 水題 image
水題!沒其他想說的,還以為可以搞點高大上的搜索呢!十五分鐘,暴力兩重循環就OK了!
代碼如下:
#include<iostream> #include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #include<queue> #include<set> #include<vector> #include<map> #define maxn 400000 #define inf 0x3f3f3f3f //l2-023;View Codeusing namespace std; int n,m,k; #define N 505 int a[N][N];//鄰接矩陣 int main(){ while(scanf("%d%d%d",&n,&m,&k)!=EOF){ memset(a,0,sizeof(a)); int s,d; for(int i=1;i<=m;i++){ scanf("%d%d",&s,&d); a[s][d]=a[d][s]=1; }int q,c; scanf("%d",&q); while(q--){ int num=n,vis[N]={0},color[N]={0};//判斷顏色種類數是否超過K for(int i=1;i<=n;i++){ scanf("%d",&c); vis[c]++; if(vis[c]>1)num--; color[i]=c; }if(num!=k){//第一次寫的是num>k —— WA了一個樣例! printf("No\n"); }else{ int flag=0; for(int i=1;i<=n&&!flag;i++){ for(int j=1;j<=n&&!flag;j++){ if(i!=j&&a[i][j]==1){ if(color[i]==color[j]){ flag=1;break; } } } } if(flag)printf("No\n"); else printf("Yes\n"); } } } return 0; }
【PAT-一道看著很難的水題】L2-023. 圖著色問題