题意:有N个相同的球,M个不同的盒子,每个盒子最多放K个球。请计算将这N个球全部放入盒子中的方案数模1000007后的结果。

解法:f[i][j]表示i个盒子里放j个球的方案数。

1.得到3重循环的坐法,枚举第i个盒子里放k个球——f[i][j]=sum( f[i-1][j-k~j] )

 1 #include<cstdio>
2 #include<cstdlib>
3 #include<cstring>
4 #include<iostream>
5 using namespace std;
6 #define N 5010
7 #define Mod 1000007
8
9 int f[2][N];
10
11 int mmin(int x,int y) {return x<y?x:y;}
12 int main()
13 {
14 int n,m,kk;
15 scanf("%d%d%d",&n,&m,&kk);
16 f[0][0]=1;
17 int u=1;
18 for (int i=1;i<=m;i++)
19 {
20 for (int j=1;j<=n;j++)
21 {
22 f[u][j]=0;
23 for (int k=1;k<=mmin(j,kk);k++)
24 f[u][j]=(f[u][j]+f[1-u][j-k])%Mod;
25 }
26 u=1-u;
27 }
28 printf("%d\n",f[1-u][n]);
29 return 0;
30 }

1 滚动数组

2.用上面的式子利用前缀和的概念(自己稍微画个条形图就好理解很多了) 或 f[i][j]与f[i][j-1]的递推式相减可化成这个式子:f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-k-1];

注意——初始化;式子不要粗心写错,否则调试得都是泪啊~ T_T

 1 #include<cstdio>
2 #include<cstdlib>
3 #include<cstring>
4 #include<iostream>
5 using namespace std;
6 #define N 5010
7 #define mod 1000007
8
9 int f[N][N];
10 int mmin(int x,int y) {return x<y?x:y;}
11 int main()
12 {
13 int n,m,kk;
14 scanf("%d%d%d",&n,&m,&kk);
15 for (int j=0;j<=kk&&j<=n;j++)
16 f[1][j]=1;
17 for (int i=2;i<=m;i++)
18 {
19 f[i][0]=1;
20 for (int j=1;j<=n;j++)
21 {
22 f[i][j]=(f[i-1][j]+f[i][j-1])%mod;//f[i-1][j]
23 if (j>kk) f[i][j]=(f[i][j]+mod-f[i-1][j-kk-1])%mod;
24 }
25 }
26 printf("%d\n",f[m][n]);
27 return 0;
28 }

2

最新文章

  1. 客户端调用 WCF 的几种方式
  2. opencart 后台导航菜单添加步骤
  3. loj 1271
  4. View绘制--onMeasure() 、onLayout()
  5. 用命令提示符压缩文件,解压缩文件(不需要客户端安装7zip)
  6. ok6410内存初始化
  7. POJ2299: Ultra-QuickSort-合并排序解决逆序数问题
  8. NUll在oracle与sqlserver中使用相同与区别
  9. JS 日常
  10. (2015年郑州轻工业学院ACM校赛题) C 数列
  11. SRM 628 D1L3:DoraemonPuzzleGame,math,后市展望,dp
  12. C#:.net/方法/字符串/数组
  13. thinkPHP内置字符串截取msubstr函数用法详解
  14. 框架学习:ibatis框架的结构和分析
  15. 非root用户加入docker用户组省去sudo
  16. System.InvalidOperationException: 支持“XXX”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。
  17. vlan 知识学习
  18. keystone系列三:网关协议
  19. shell脚本大小写转换
  20. Python基本数据类型——列表

热门文章

  1. 【JavaWeb】现代 JavaScript 教程
  2. 【JavaWeb】EL 表达式
  3. 内存性能测试 Memtester+mbw
  4. kubernets之namespace
  5. CyNix-lxd提权
  6. windows中使用django时报错:A server error occurred. Please contact the administrator.
  7. Ubuntu安装记录
  8. YOLOv4
  9. mysql(连接查询和数据库设计)
  10. Vue 3自定义指令开发