程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu2049(組合數學)

hdu2049(組合數學)

編輯:C++入門知識

題意:每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排;然後,讓各位新郎尋找自己的新娘.每人只准找一個,並且不允許多人找一個.最後,揭開蓋頭,如果找錯了對象就要當眾跪搓衣板...假設一共有N對新婚夫婦,其中有M個新郎找錯了新娘,求發生這種情況一共有多少種可能.


解法:從N中選出M個C[n][m],然後乘上錯排公式;f[n]=(n-1)*(f[n-1]+f[n-2]);f[0]=1;f[1]=0;


代碼:

/******************************************************
* author:xiefubao
*******************************************************/
#pragma comment(linker, "/STACK:102400000,102400000")
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
//freopen ("in.txt" , "r" , stdin);
using namespace std;

#define eps 1e-8
const double pi=acos(-1.0);
typedef long long LL;
const int Max=25;
const int INF=1000000007;

LL f[Max];
LL C[Max][Max];
void init()
{
    f[1]=0;
    f[0]=1;
    for(int i=2;i>t;
  while(t--)
  {
      int n,m;scanf("%d%d",&n,&m);
      cout<

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved