[codevs1315]摆花
来源:互联网 发布:python编程工具 编辑:程序博客网 时间:2024/06/10 23:50
题目←
大意:
m种花,每种花有a[i]盆,共摆m盆,有多少种摆法
注:第i + 1种花只能摆在第i种花后面
思路:
像是递推一样……
dp[i][j]表示第i种花摆到第j盆有多少方法
因为只能摆在第i-1种后面(不严格,第i - 1种可能没有摆,但没摆的可能性也算在第i - 1种之内),所以i这一维可以由i-1这一维推来
#include<iostream>#include<cstdio>#include<algorithm>#define P 1000007using namespace std;const int MAXN = 100 + 50;int n,m,a[MAXN];int dp[MAXN][MAXN];int main(){ scanf("%d%d",&m,&n); for(int i = 1;i <= m;i ++) { scanf("%d",&a[i]); //dp[i][1] = i; } for(int i = 0;i <= a[1];i ++)dp[1][i] = 1; for(int i = 1;i <= m;i ++) for(int j = 0;j <= n;j ++) for(int k = 0;k <= a[i];k ++) if(k <= j) dp[i][j] = (dp[i][j]%P + dp[i - 1][j - k]%P)%P; printf("%d",dp[m][n]);}
刚开始j由1->n,一直wa
抱着玄学的心态改成0->n……就a了
原因是每种花摆0盆时有一种方法。
其实摆0盆的方法不重要,但dp[i+1][j]可能需要由dp[i][0]推来(第i种不摆的时候,全部摆第i + 1种花也算作一种方法)
tips:
转移时注意考虑特殊状态的定义
阅读全文
0 0
- 【codevs1315】摆花 DP
- [codevs1315]摆花
- BSOJ 3537 CODEVS1315 洛谷P1077 【noip2012普及】摆花 分配类DP优化 (不要满足于n*m*m)
- 摆花
- 摆花
- 摆花
- 摆花
- 摆花
- VIJOS 1792 摆花
- noip2012摆花
- codevs 摆花
- 洛谷1077 摆花
- NKOI 3711 摆花
- 洛谷 P1077 摆花
- [NOIP2012][VIJOS1792]摆花
- 【vijosP1792】摆花
- 【VijosP1792】摆花
- 【DP】 摆花
- Android轻松实现代码混淆
- 2119 数据结构实验之链表四:有序链表的归并
- ibatis 中case使用
- 高性能IO模型浅析
- 论文发表费用具体多少
- [codevs1315]摆花
- 页面兼容性
- Max 的游戏
- Netty系列四:第一个Netty程序(业务线程异步)
- ubuntu开机自动挂载新硬盘
- python魔术方法详解
- Shell-基础使用
- c# 如何弹出对话框
- 读 read