日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C1. 组队活动 Small(BNUOJ)

發布時間:2024/7/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C1. 组队活动 Small(BNUOJ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C1. 組隊活動 Small

Time Limit: 1000msMemory Limit: 131072KB64-bit integer IO format:?%lld????? Java class name:?MainSubmit?Status?PID: 51280

BNU ACM校隊一共有名隊員,從到標號,現在名隊員要組成若干支隊伍來相互學習、共同進步,為了保證學習效率,每支隊伍至多有名隊員,你需要計算出一共有多少種不同的組隊方案。兩個組隊方案被視為不同的,當且僅當存在至少一名隊員在兩種方案中有不同的隊友。

Input

第一行是一個正整數,表示測試數據的組數,

對于每組測試數據,

輸入只有一行,包含兩個整數、。

Output

對于每組測試數據,

輸出一行,包含一個整數,表示不同的組隊方案的個數,由于方案數可能很大,請對取模后輸出。

Sample Input

2?5 220 3

Sample 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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。