大同市网站建设_网站建设公司_测试工程师_seo优化
2025/12/19 19:45:11 网站建设 项目流程

P1657 选书
x本书分给x个人,一个人喜欢两本书,问每个人都得到喜欢的书的方案数是多少。
用二维数组love[N][2]储存第i个人喜欢的书,bool z[N]表示书是否被选走,用dfs(深搜)即可。

点击查看代码
#include<iostream>
using namespace std;
const int N = 25;
int a[N][2], total = 0, n;
bool b[N];
void dfs(int start){if(start == n + 1){total++;return;}for(int i = 1;i <= n;++i){for(int j = 0;j < 2;++j){if(!b[i] && a[start][j] == i){b[i] = 1;dfs(start + 1);b[i] = 0;}}}
}
int main(){cin >> n;for(int i = 1;i <= n;++i){cin >> a[i][0] >> a[i][1];}dfs(1);cout << total << endl;
}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询