學校放寒假時,資訊學奧賽輔導老師有1,2,3……x本書,要分給參加培訓的x個人,每人只能選一本書,但是每人有兩本喜歡的書。老師事先讓每個人將自己喜歡的書填寫在一張表上。然後根據他們填寫的表來分配書本,希望設計乙個程式幫助老師求出所有可能的分配方案,使每個學生都滿意。
輸入格式:
第1行:乙個數x
第2行~第1+x行:每行兩個數,表示ai喜歡的書的序號
輸出格式:
只有乙個數:總方案數total。
輸入樣例#1: 複製
51 34 5
2 51 4
3 5
輸出樣例#1: 複製
2
所有資料:x<=20
(世界上最難出資料的題目,沒有之一……)
思路:搜尋
#include#include#include
#include
using
namespace
std;
intn,ans;
int a[21],b[21],vis[21
];void dfs(int
tot)
if(vis[a[tot+1]]&&vis[b[tot+1]]) return
;
if(!vis[a[tot+1]]) vis[a[tot+1]]=1,dfs(tot+1),vis[a[tot+1]]=0
;
if(!vis[b[tot+1]]) vis[b[tot+1]]=1,dfs(tot+1),vis[b[tot+1]]=0;}
intmain()
for(int i=1;i<=n;i++)
scanf(
"%d%d
",&a[i],&b[i]);
dfs(0);
cout
<}
洛谷 P1657 選書 dfs
時間限制 1.00s 記憶體限制 125.00mb 學校放寒假時,資訊學奧賽輔導老師有1,2,3 x本書,要分給參加培訓的x個人,每人只能選一本書,但是每人有兩本喜歡的書。老師事先讓每個人將自己喜歡的書填寫在一張表上。然後根據他們填寫的表來分配書本,希望設計乙個程式幫助老師求出所有可能的分配方案,使...
P1657 選書洛谷c 題解
如果你覺得這篇文章對你有幫助的話,請點點大拇指哦 題目描述 學校放寒假時,資訊學奧賽輔導老師有1,2,3 x本書,要分給參加培訓的x個人,每人只能選一本書,但是每人有兩本喜歡的書。老師事先讓每個人將自己喜歡的書填寫在一張表上。然後根據他們填寫的表來分配書本,希望設計乙個程式幫助老師求出所有可能的分配...
洛谷P1036 選數
已知 n 個整數 x1,x2,xn,以及乙個整數 k k n 從 n 個整數中任選 k 個整數相加,可分別得到一系列的和。例如當 n 4,k 3,4 個整數分別為 3,7,12,19 時,可得全部的組合與它們的和為 3 7 12 22 3 7 19 29 7 12 19 38 3 12 19 34。...