我个人认为我这个代码肯定超时,而且我的结果输不出来
请求支援,代码如下
#include<bits/stdc++.h>
using namespace std;
bool vis[10001];
int n, m, u, v, a[10001][10001], j, ans;
void dfs(int now, int cnt) {
if (now == j && cnt > 2) {
ans++;
return ;
}
for (int i = 1; i <= n; i++) {
if (a[now][i] || a[i][now]) {
cnt++;
vis[i] = 1;
dfs(i, cnt);
cnt--;
vis[i] = 0;
}
}
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= m; i++) {
scanf("%d%d", &u, &v);
a[u][v] = 1;
a[v][u] = 1;
}
for (int i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
memset(vis, 0, sizeof(vis));
vis[i] = 1;
dfs(i, 0);
}
}
printf("%d", ans);
return 0;
}
awa