1491 圓桌座位(DFS)

2021-10-07 22:01:41 字數 1203 閱讀 7819

n 個人圍坐一圈,有 m 對朋友關係。

第 i 對朋友關係是指,編號是 ai的人和編號是 bi 的人是朋友。

現在要給他們安排座位,要求所有相鄰的人不能是朋友。

問共有多少種方案?

如果兩個方案只有旋轉角度不同,則我們將其視為一種方案。

輸入格式

第一行包含兩個整數 n,m。

接下來 m 行,每行包含一對 ai,bi。

輸出格式

輸出乙個數,表示總方案數。

資料範圍

3≤n≤10,

0≤m≤n(n

−1)2

\frac

2n(n−1

)​,1≤ai

i≤n,

(ai,bi)≠(aj,bj),

所有輸入均為整數。

輸入樣例1:

4 1

1 2

輸出樣例1:

輸入樣例2:

10 5

1 23 4

5 67 8

9 10

輸出樣例2:

#include

using

namespace std;

int n,m;

int path[15]

;//安排的方案

bool r[15]

[15],vis[15]

;//r為朋友關係、vis代表第i個人是否已經被使用

intdfs

(int x)

int result=0;

for(

int i=

1;i<=n;i++)}

return result;

}int

main()

//設定第乙個人已被使用

vis[1]

=true

;//因為旋轉不同,視為同一種方案,所以固定住第乙個人永遠為1

//那些不是以1開頭的排列其實都可以由1開頭的排列旋轉得到

path[0]

=1;//注意:因為第0個位置已經固定好安排序號為1的人了,所以dfs要從1開始

cout<<

dfs(1)

}

1214 圓桌會議

problem description hdu acm集訓隊的隊員在暑假集訓時經常要討論自己在做題中遇到的問題.每當面臨自己解決不了的問題時,他們就會圍坐在一張圓形的桌子旁進行交流,經過大家的討論後一般沒有解決不了的問題,這也只有hdu acm集訓隊特有的圓桌會議,有一天你也可以進來體會一下哦 在一...

HDU 4841 圓桌問題

acm模版 這個題簡單的來就是暴力列舉約瑟夫環,當然,太暴力也不好,適當的用資料結構優化一下也是有必要的,這裡用向量維護,成功水過。include include include include include using namespace std const int maxn 4e4 const...

P3254 圓桌問題

假設有來自m 個不同單位的代表參加一次國際會議。每個單位的代表數分別為ri i 1 2,m r i i 1,2,m 會議餐廳共有n 張餐桌,每張餐桌可容納ci i 1 2,n c i i 1,2,n 個代表就餐。為了使代表們充分交流,希望從同乙個單位來的代表不在同乙個餐桌就餐。試設計乙個演算法,給出...