HDU 2068 RPG的錯排 排列組合

2022-05-18 19:45:10 字數 777 閱讀 7489

解題報告:

題目大意:有n個人和n個名字,要將他們一一對應,對應的規則是至少要有n/2是對了的,求這樣一共有多少種對應的方法。

錯排題,從0開始列舉到n/2,即表示有0個人的名字與人對應是錯的、1個人的名字與本人的對應是錯的、兩個人的名字與本人的對應是錯的、、、2、、、、,這裡用乙個組合就可以了,要注意的是求組合的時候必須一邊乘一邊除掉,否則用__int64也會溢位,然後就是乙個錯排,錯排的遞推公式是dp[n]=(n-1)*(dp[n-1]+dp[n-2]);假設現在有5個位置,編號為1、2、3、4、5,有5個人編號為1、2、3、4、5,規定1號不能做1號位置,2號不能做2號位置、、、、,則dp[5]可以有dp[4]得出來,思想是假設現在有乙個四個人的和四個位置的錯排,現在新增乙個5,第一種,先考慮當讓這個5去做1號位置,然後分兩種情況,第一種,1坐5的位置,這樣就相當於3個人的錯排,也就是dp[n-2],第二種,1不坐5的位置,這樣就等於可以把1看成是5了,也就是4個人的錯排,也就是dp[n-1],然後考慮的是先讓5去坐2的位置,接下來就跟上面情況一樣了,所以乘以乙個(n-1),就得到了dp[n]=(n-1)*(dp[n-1]+dp[n-2]);

1 #include2 #include3 __int64 dp[30];4

void

dabiao()

10__int64 c(__int64 x,__int64 y)

18return

s;19}20

intmain()

29return0;

30 }

view code

HDU 2068 RPG的錯排(錯排 排列組合)

problem description 今年暑假杭電acm集訓隊第一次組成女生隊,其中有一隊叫rpg,但做為集訓隊成員之一的野駱駝竟然不知道rpg三個人具體是誰誰。rpg給他機會讓他猜猜,第一次猜 r是公主,p是草兒,g是月野兔 第二次猜 r是草兒,p是月野兔,g是公主 第三次猜 r是草兒,p是公主...

hdu 2068 RPG的錯排(組合)

hdu 2068 rpg的錯排 description 今年暑假杭電acm集訓隊第一次組成女生隊,其中有一隊叫rpg,但做為集訓隊成員之一的野駱駝竟然不知道rpg三個人具體是誰誰。rpg給他機會讓他猜猜,第一次猜 r是公主,p是草兒,g是月野兔 第二次猜 r是草兒,p是月野兔,g是公主 第三次猜 r...

hdu 2068 RPG的錯排 錯排)

problem description 今年暑假杭電acm集訓隊第一次組成女生隊,其中有一隊叫rpg,但做為集訓隊成員之一的野駱駝竟然不知道rpg三個人具體是誰誰。rpg給他機會讓他猜猜,第一次猜 r是公主,p是草兒,g是月野兔 第二次猜 r是草兒,p是月野兔,g是公主 第三次猜 r是草兒,p是公主...