Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
107818 | 毛泓博(做题专用,大号Fess) | 四色地图 | C++ | 解答错误 | 20 | 1000 MS | 252 KB | 810 | 2023-10-28 10:57:49 |
#include<bits/stdc++.h> using namespace std; int n,link[27][27],t,s[27]; bool check(int cur,int color) { for(int i=1;i<=link[cur][0];i++) if(s[link[cur][i]]==color) return false; return true; } bool check2() { for(int cur=1;cur<=n;cur++) for(int i=1;i<=link[cur][0];i++) if(!s[link[cur][i]]) return false; return true; } void dfs(int cur) { for(int i=1;i<=4;i++) if(check(cur,i)) { s[cur]=i; if(link[cur][0]==1) return; for(int k=1;k<=link[cur][0];k++) { if(!s[link[cur][k]]) dfs(link[cur][k]); if(check2()) { for(int j=1;j<=n;j++) cout<<s[j]<<' '; exit(0); } } } } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>t; for(int i=1;getchar()!='\n';i++) { cin>>link[t][i]; link[t][0]++; } } dfs(1); }