錯排問題:考慮第i個位置,要使全部i個形成錯排, 則有下面兩種情況:
1.假設前i - 1 個位置的人都拿錯了,數量是dp[i - 1], 第i個人拿的是自己的牌, 則這個人和前面(n - 1)個人的任意乙個交換手中的牌即可滿足全部i個位置錯排, 數目有(i - 1) * dp[i - 1]。
2.前面i - 1個位置的人有乙個人拿的是自己的牌, 即有i - 2個人錯排, 數目有dp[i - 2], 第i個人拿的也是自己的牌,此時這個人拿自己的牌和前面i - 1個人中的那個拿著自己的牌的人交換即可滿足全部錯排, 數目 (i - 1) * dp[ i - 2]
即dp[i] = (i - 1) * (dp[i - 1] + dp[i - 2])
#include #include //using namespace std;
long long fun(int n)
int main(int argc, char** ar**)
for(int i = 0; i < n; i++)
return 0;
}
HDU 神 上帝以及老天爺 錯排方法
hdu 神 上帝以及老天爺 problem description hdu 2006 10 acm contest的頒獎晚會隆重開始了!為了活躍氣氛,組織者舉行了乙個別開生面 獎品豐厚的 活動,這個活動的具體要求是這樣的 首先,所有參加晚會的人員都將一張寫有自己名字的字條放入 箱中 然後,待所有字條...
神 上帝以及老天爺(遞推) SDUT
time limit 1000 ms memory limit 2048 kib submit statistic 協會活動為了活躍氣氛,組織者舉行了乙個別開生面 獎品豐厚的 活動,這個活動的具體要求是這樣的 首先,所有參加晚會的人員都將一張寫有自己名字的字條放入 箱中 然後,待所有字條加入完畢,每...
神 上帝以及老天爺(遞推公式)
problem description hdu 2006 10 acm contest的頒獎晚會隆重開始了!為了活躍氣氛,組織者舉行了乙個別開生面 獎品豐厚的 活動,這個活動的具體要求是這樣的 首先,所有參加晚會的人員都將一張寫有自己名字的字條放入 箱中 然後,待所有字條加入完畢,每人從箱中取乙個字...