1 条题解
-
0
C++ :
#include<iostream> using namespace std; const int N = 25; const int INF = 9999999; int e[N][N],n,k,m,color[N],tot; bool check(int k){ for(int i=1;i<=n;i++) if(e[k][i]==1&&color[k]==color[i]) return false; return true; } void dfs(int step) { if(step==n+1){ tot++; return ; } for(int i=1;i<=m;i++){ color[step]=i; if(check(step)) dfs(step+1); color[step]=0; } return ; } int main() { cin>>n>>k>>m; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i==j) e[i][j]=0; else e[i][j]=INF; for(int i=1;i<=k;i++){ int a,b; cin>>a>>b; e[a][b]=1; e[b][a]=1; } dfs(1); cout<<tot<<endl; return 0; }
- 1
信息
- ID
- 676
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者