HDU 1292 "下沙野駱駝"ACM夏令營

"下沙野駱駝"ACM夏令營

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 824    Accepted Submission(s): 398


Problem Description
大家都知道,杭電計算機學院爲了吸引更多的學生參與到程序設計競賽中去,從2005年秋天,開始舉行月賽,並一直堅持到了現在。事實表明,這項措施的效果還是很明顯的,現在堅持參加訓練的學生比以前有了較大幅度的增長,整體水平也有了較大的提高。
爲了更好的促進這項競賽的發展,計算機學院又有了新的計劃:準備在每年的暑假舉行一個爲期半個月的程序設計夏令營活動,活動的全稱是“下沙野駱駝ACM夏令營”,準備邀請全球的編程高手共同訓練,邀請對象當然少不了HFUT的DYGG,NIT的DGMM,ZJUT的QWDD,如果QH的LTC一定要來,我們也不會嫌棄,雖然他水平比其他人差了些,畢竟是杭州人,要給點面子的,再說,共同進步纔是我們的最終目的,呵呵。
活動的安排初步定爲7項內容,具體是:
1、第一天,倒時差(主要照顧歐美的選手)。
2、第二天,參觀杭電校園,並在參觀結束舉行有獎競答,偷偷透露一下,題目我已經設計好了:“杭電校院一共有幾棵樹?”(正確答案:3897棵),答對的營員獎勵雪糕一支(不是哈根達斯,是杭州五豐生產的,民族工業還是要支持的)。
3、第三天,參觀杭電ACMer的寢室,主要目的是讓部分來自資本主義國家的選手看看我們是如何管理學生宿舍的,其中一項重要內容是向全球推廣我校首創的“黨員模範寢室”。
4、第四天,練習賽,題目只有一個:“非著名高校HD一共有教職工num個,分佈在X個部門,假設每個部門有y1個正處級領導,y2個副處級領導,y3個付處級調研員,y4個正科級幹部,y5個副科級幹部,請輸出HD的領導人員佔教職工總數的比例,結果保留兩位小數。”(告訴你,這個題目對於歐美選手來說有個陷阱,最後的結果可能大於100%!這是他們如何也想不到的:)
5、第五天~第十三天,算法交流,主要討論如何求兩個數的最小公倍數。
6、第十四天,自由組隊(每隊人數不限,呵呵,注意了),參加“下沙野駱駝杯”程序設計大賽,冠軍將獲得一匹下沙的野駱駝(我們主場不知道有沒有機會...)
7、最後一天,篝火晚會,主題:“ACM,你到底愛不愛我?!”,主持人:駱駝王子和他一個普通老同學。

負責這次夏令營活動的是05級的小師弟Linle(一個打字速度很快,號稱僅次於Fe(OH)2的小夥子),他很聰明,也很勤奮,現在他就在思考一個問題,如果一共來了n個同學,按照組隊規則,一共會有多少種不同的組隊方案呢?
 

Input
輸入數據的第一行是一個整數C(1<C<25),表示測試實例的數目,然後是C行數據,每行一個整數n(0<n<25),表示營員的人數。
 

Output
對於每組輸入數據,請輸出組隊的方案數目,每個測試實例佔一行。
 

Sample Input
3 1 2 3
 

Sample Output
1 2 5
 

Author
lcy
 

Source
解題思路:求n個人分成k個隊伍0<k<=n的總方案數,其實就是第二類stirling數,用dp[i][j]表示i個人分成j組的方法總數,
dp[i][j]=dp[i-1][j-1]+dp[i-1][j]*j,也就是前i-1個人分成j-1組,最後一個人單獨成一組和前i-1個人分成j組,最後一個人插入到j組中的任意一組
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long dp[30][30];
void DP()
{
    int i,j;
    memset(dp,0,sizeof(dp));
    for(i=1;i<=25;i++)
        dp[i][i]=1;
    for(i=1;i<=25;i++)
        for(j=1;j<i;j++)
            dp[i][j]=dp[i-1][j-1]+dp[i-1][j]*j;
}
int main()
{
    int t,n,i;
    long long ans;
    scanf("%d",&t);
    DP();
    while(t--)
    {
        scanf("%d",&n);
        ans=0;
        for(i=1;i<=n;i++)
            ans+=dp[n][i];
        printf("%I64d\n",ans);
    }
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章