被数据
5 5 4
1 2
1 3
2 4
3 4
4 5
hack了 代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 5e3 + 10;
int n,k,m,p,q,a[N][N],b[N],minn,ans = 1;
bool pos[N];
void dfs(int x) {
minn = 1e6 + 10;
pos[x] = true;
for (int i = 1;i <= n;i ++) {
if(a[x][i] && !pos[i]) {
b[i] --;
}
}
for (int i = 1;i <= n;i ++) {
if(a[x][i]) {
minn = min(minn,b[i]);
}
}
for (int i = 1;i <= n;i ++) {
if(!pos[i] && b[i] == minn && a[x][i]) {
dfs(i);
}
}
}
int main() {
cin >> n >> k >> m;
minn = m - 1;
for (int i = 1;i <= k;i ++) {
cin >> p >> q;
a[p][q] = 1;
a[q][p] = 1;
}
for(int i = 1;i <= n;i ++) {
b[i] = m;
}
dfs(1);
ans = m;
for(int i = 2;i <= n;i ++) {
ans *= b[i];
}
if(ans <= 0) {
cout << 0 << endl;
}
else {
cout << ans << endl;
}
return 0;
}