C1. 组队活动 Small(BNUOJ)

C1. 组队活动 Small

Time Limit: 1000ms
Memory Limit: 131072KB
64-bit integer IO format: %lld      Java class name: Main
Submit Status PID: 51280

BNU ACM校队一共有n名队员,从1n标号,现在n名队员要组成若干支队伍来相互学习、共同进步,为了保证学习效率,每支队伍至多有m名队员,你需要计算出一共有多少种不同的组队方案。两个组队方案被视为不同的,当且仅当存在至少一名队员在两种方案中有不同的队友。

Input

第一行是一个正整数T(T \leq 5),表示测试数据的组数,

对于每组测试数据,

输入只有一行,包含两个整数n(1 \leq n \leq 1000)m(1 \leq m \leq 1000)

Output

对于每组测试数据,

输出一行,包含一个整数,表示不同的组队方案的个数,由于方案数可能很大,请对998244353(7 \times 17 \times 2^{23}+1)取模后输出。

Sample Input

5 2
20 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

窥见人工智能四十年 2019 CCF-GAIR全球人工智能与机器人峰会今日开幕

编者按&#xff1a;7月12日-14日&#xff0c;2019年全球人工智能与机器人峰会&#xff08;CCF-GAIR&#xff09;正式开幕&#xff0c;该峰会由中国计算机学会&#xff08;CCF&#xff09;主办&#xff0c;雷锋网、香港中文大学&#xff08;深圳&#xff09;承办&#xff0c;深圳…

神经网络的反向传播推导实例

假设&#xff0c;你有这样一个网络层&#xff1a; 第一层是输入层&#xff0c;包含两个神经元i1&#xff0c;i2&#xff0c;和截距项b1&#xff1b;第二层是隐含层&#xff0c;包含两个神经元h1,h2和截距项b2&#xff0c;第三层是输出o1,o2&#xff0c;每条线上标的wi是层与层之…

AI赌神升级!无惧bluff,6人局德扑完胜世界冠军,训练只用了8天

大数据文摘出品2017年年初&#xff0c;Brain vs AI的德州扑克人机大战在卡耐基梅隆大学(CMU)落幕&#xff0c;由4名人类职业玩家组成的人类大脑不敌人工智能程序Libratus。获胜后人类还遭到了Libratus的无情嘲讽。但是那时候Libratus还只是个只能在1V1局里称霸的超级玩家&#…

pytorch报错RuntimeError: error in LoadLibraryA

这是因为腾讯管家把某个文件当成病毒删除了&#xff0c;恢复该文件即可 恢复腾讯管家杀毒误删文件方法&#xff1a; https://jingyan.baidu.com/article/6766299763dab854d41b8457.html

OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse()

OpenCV示例学习&#xff08;二&#xff09;&#xff1a; 基本图形绘制算子&#xff1a;line(),circle(),fillPoly(), ellipse() #include <opencv2/opencv.hpp>using namespace cv;#define WINDOW_NAME1 "【绘制图1】" //为窗口标题定义的宏 #define W…

动荡的 2019:数据和 AI 生态圈

来源&#xff1a;云头条这是数据领域又一个激烈动荡的年头&#xff0c;令人兴奋&#xff0c;但又错综复杂。随着越来越多的人上网&#xff0c;一切继续在加快“数据化”的步伐。这个大趋势的发展势头越来越猛&#xff0c;归因于基础设施、云计算、AI和开源各个领域取得的进步的…

无线通信界的3大天王,谁能驾驭百亿台IoT设备?

来源&#xff1a;物联网智库导 读数量爆发式增长的背后&#xff0c;Wi-Fi、蓝牙、Zigbee三大无线连接技术正上演一场“争霸赛”。本文通过对三项技术的详细对比&#xff0c;以分析三项技术在具体应用场景中的优劣势。根据前瞻产业研究院发布的《2018—2023年中国物联网行业细分…

腾讯张正友:计算机视觉的三生三世

本文转载自&#xff1a;腾讯AI实验室本文将介绍腾讯 AI Lab & Robotics X 主任张正友博士在 CCF-GAIR 2019 大会上所做的报告&#xff0c;讲述计算机视觉研究的历史和未来。7 月 12 日-7 月 14 日&#xff0c;2019 第四届全球人工智能与机器人峰会&#xff08;CCF-GAIR 201…

未来50亿年科学预测

来源&#xff1a;宇宙解码近期未来史现今——公元2500年公元2020年 三维全息电视将进入生活&#xff0c;人们可以通过付费点播观看。公元2025年 氢燃料电池技术将给交通运输领域带来革命&#xff0c;氢燃料电池汽车将开始中批量生产。餐桌上会出现具有肉类营养特征的植物。培养…

OpenCV学习笔记(二):3种常用访问图像中像素的方式

OpenCV学习笔记&#xff08;二&#xff09;&#xff1a;3种常用访问图像中像素的方式 #include <opencv2/opencv.hpp>using namespace cv; using namespace std;int main() {//【1】创建原始图并显示Mat srcImage imread("F:/C/2. OPENCV 3.1.0/TEST/11.jpg"…

水题 UVA 1586 - Ancient Cipher化学式分子量计算

原题见&#xff1a;http://acm.hust.edu.cn/vjudge/contest/view.action?cid106424#overview 题目要求&#xff0c;根据所给化学量与原子量计算化学式的相对分子质量。。。其实就是怎么对应起来的事。 代码如下&#xff1a; 1 #include <stdio.h>2 //给出一种物质的分子…

【边缘计算】边缘计算元年一文看懂云边协同!九大场景带来新一轮信息革命...

来源&#xff1a;产业智能官2019 年边缘计算备受产业关注&#xff0c;一度引起了资本市场的投资热潮&#xff0c;很多人把 2019 年称作边缘计算的元年。理性来看&#xff0c;造成如此火爆局势难免有一些炒作因素在推波助澜&#xff0c;毕竟边缘计算的概念存世也已多年。当然&am…

OpenCV学习笔记(三):多通道图像分离、混合算子:split(),merge()

OpenCV学习笔记&#xff08;三&#xff09;&#xff1a;多通道图像分离、混合算子&#xff1a;split(),merge() #include <opencv2/opencv.hpp>#define BRG_BLUE_CHANNEL 0 #define BRG_GREEN_CHANNEL 1 #define BRG_RED_CHANNEL 2using namespace cv;int main(int argc…

pytorch两种常用的学习率衰减方法

阶梯式衰减 torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma0.1, last_epoch-1) 每个训练step_size个epoch&#xff0c;lr会自动乘以gamma LR 0.01 optimizer Adam(model.parameters(),lr LR) scheduler torch.optim.lr_scheduler.StepLR(optimizer,step_s…

[转]retina屏下支持0.5px边框的情况

2014-12-31更新&#xff1a;截至到IOS8.1&#xff0c;safari仍不支持supports待safari支持supports, 就可以利用0.5px了&#xff01; 2014-7-25更新&#xff1a;1. 修正dpr 1.5 机器下四角边框的缩放比例&#xff1b;2. 修正右边框&#xff08;rBor&#xff09;的transform-or…

心理所发表关于神经科学研究可信度的评论文章

来源&#xff1a;文章来源&#xff1a;心理研究所 作为人类特有的行为&#xff0c;科学研究是社会文明的重要推动力量之一。近年来&#xff0c;研究的可重复性问题成为科学关注的焦点&#xff0c;从心理科学到临床医学等领域&#xff0c;研究的可重复性成为巨大挑战。生命科学研…

OpenCV学习笔记(三):图像对比度、亮度调整源码

OpenCV学习笔记&#xff08;三&#xff09;&#xff1a;图像对比度、亮度调整源码 主函数&#xff1a; #include <opencv2/opencv.hpp>using namespace cv;using namespace std;int g_nContrastValue80; //对比度值int g_nBrightValue80; //亮度值Mat g_srcImage, g_ds…

MATLAB xlswrite函数出现“错误: 服务器出现意外情况”

打开Excel&#xff0c;点击文件→选项→加载项&#xff0c;选择COM加载项 点击转到&#xff0c;将福昕阅读器前面的√去掉即可

神秘的中国超算:比肩高铁的世界级领先

来源&#xff1a;21Tech2019年4月&#xff0c;一张类似燃烧中蜂窝煤的照片传遍全世界——这是人类历史上首次得见“黑洞”的真容。实际上&#xff0c;关于黑洞的照片早在2017年4月历经十余天已拍摄完毕&#xff0c;此后&#xff0c;便是将来自全球8架射电望远镜收集到的数据进行…

OpenCV示例学习(七):离散傅里变换(DFT)算子:getOptimalDFTSize(),copyMakeBorder(),magnitude(),log(),normalize()

OpenCV示例学习&#xff08;七&#xff09;&#xff1a;离散傅里变换&#xff08;DFT&#xff09;算子&#xff1a;getOptimalDFTSize(),copyMakeBorder(),magnitude(),log(),normalize() #include <opencv2/opencv.hpp>using namespace cv;int main(int argc, char *ar…