C1. 组队活动 Small(BNUOJ)
生活随笔
收集整理的這篇文章主要介紹了
C1. 组队活动 Small(BNUOJ)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C1. 組隊活動 Small
Time Limit: 1000msMemory Limit: 131072KB64-bit integer IO format:?%lld????? Java class name:?MainSubmit?Status?PID: 51280BNU ACM校隊一共有名隊員,從到標號,現在名隊員要組成若干支隊伍來相互學習、共同進步,為了保證學習效率,每支隊伍至多有名隊員,你需要計算出一共有多少種不同的組隊方案。兩個組隊方案被視為不同的,當且僅當存在至少一名隊員在兩種方案中有不同的隊友。
Input
第一行是一個正整數,表示測試數據的組數,
對于每組測試數據,
輸入只有一行,包含兩個整數、。
Output
對于每組測試數據,
輸出一行,包含一個整數,表示不同的組隊方案的個數,由于方案數可能很大,請對取模后輸出。
Sample Input
2?5 220 3Sample Output
26?721625882思路:dp。動態轉移方程dp[i]=(dp[i]+(C[i-1][j]*dp[i-1-j])%E)%E;其中C為組合數,用楊輝三角法可以求得。考慮當新加入的人,有多少種組隊法,也就是和前面的人的組合按照不超過m名隊員枚舉,所以從前面選出的人就是C[i-1][j],前i-1個人中選j個的選法,然后前i-1剩下的按合理排的方案就為dp[i-1-j].所以兩個相乘。?1?#include<stdio.h>?2?#include<algorithm>
?3?#include<iostream>
?4?#include<string.h>
?5?#include<stdlib.h>
?6?#include<queue>
?7?#include<stack>
?8?#include<cstdio>
?9?#define?sc(x)?scanf("%I64d",&x)
10?#define?pr(x)?printf("%I64d",x)
11?#define?prr(x)?printf("%I64d\n",x);
12?#define?prrr(x)?printf("%I64d?",x);
13?const?long?long?E=998244353;
14?using?namespace?std;
15?long?long?C[1005][1005];
16?long?long?dp[1005];
17?void?run()
18?{
19?????int?i,j;
20?????for(i=0;?i<=1000;?i++)
21?????for(j=0;?j<=i;?j++)
22?????????if(j==0||i==j)
23?????????????C[i][j]=1;
24?????????????else
25?C[i][j]=(C[i-1][j-1]+C[i-1][j])%E;
26?}//楊暉三角
27?int?main(void)
28?{
29?????run();
30?????int?i,j,k,p,q;
31?????scanf("%d",&k);
32?????while(k--)
33?????{
34?????????memset(dp,0,sizeof(dp));
35?????????scanf("%d?%d",&p,&q);
36?????????dp[0]=1;
37?????????dp[1]=1;
38?????????for(i=2;?i<=p;?i++)
39?????????{
40?????????????for(j=0;?j<q;?j++)//枚舉種類
41?????????????{
42?????????????????if(i-1-j<0)
43?????????????????{
44?????????????????????break;
45?????????????????}
46?????????????????else
47?????????????????{
48?????????????????????dp[i]=(dp[i]+(C[i-1][j]*dp[i-1-j])%E)%E;
49?????????????????}
50?????????????}
51?????????}
52?????????printf("%lld\n",dp[p]);
53?????}
54?????return?0;
55?}
轉載于:https://www.cnblogs.com/zzuli2sjy/p/5181122.html
總結
以上是生活随笔為你收集整理的C1. 组队活动 Small(BNUOJ)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stream iterators源代码详
- 下一篇: itextsharp c# asp.ne