求助
  • 板块P1657 选书
  • 楼主zjr0330
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/9/17 20:46
  • 上次更新2023/11/2 19:33:00
查看原帖
求助
746947
zjr0330楼主2023/9/17 20:46

rt

为啥总是输出 0 qwq

#include <iostream>
using namespace std;
int a[50] = {0};
int n, ans = 0;
int ren[50][2];
bool is[50] = {false};
void dfs(int cen, int num[21]) {
	if (cen == n) {
		bool is = true;
		for (int i = 1; i <= n; i++) {
			if (num[i] != ren[i][0] && num[i] != ren[i][1]) {
				is = false;
				break;
			}
		}
		if (is) {
			ans++;
		}
		return;
	}
	if (cen > n)return;
	for (int i = 1; i <= n; i++) {
		if (is[i] == false) {
			is[i] = true;
			num[cen] = i;
			dfs(cen + 1, num);
			is[i] = false;
		}
	}
}
int nums[21] = {0};
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> ren[i][0] >> ren[i][1];
	}
	dfs(0, nums);
	cout << ans << endl;
	return 0;
}

2023/9/17 20:46
加载中...