求条 20pts
查看原帖
求条 20pts
832774
wish_you_wa_happy楼主2024/10/25 19:57
#include <bits/stdc++.h>
using namespace std;
vector<int> a[10001];
int n, m;
short vis[10001];
long long f[10001][3];

long long dfs(int x, int s, int q) {
	if (s > 2) {
		return 1;
	}
	if (f[x][s])
		return f[x][s];
	for (int i = 0; i < a[x].size(); i++) {
		int y = a[x][i];
		if (vis[y] == 0) {
			vis[y] = 1;
			f[x][s] += dfs(y, s + 1, q);
			vis[y] = 0;
		}
	}
	return f[x][s];
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> n >> m;
	for (int i = 1; i <= m; i++) {
		int u, v;
		cin >> u >> v;
		a[u].push_back(v);
		a[v].push_back(u);
	}
	long long ans = 0;
	for (int i = 1; i <= n; i++) {
		vis[i] = 1;
		ans += dfs(i, 1, i);
		vis[i] = 0;
		//	cout << ans << endl;
	}
	cout << ans;
	return 0;
}

记录

2024/10/25 19:57
加载中...