POJ 3046
2014-04-08 20:09
225 查看
DP
#include<stdio.h> #include<string.h> int dp[1005][10050];//dp[i][j]表示前i种蚂蚁凑成集合个数为j时的方案数; int num[10050];//记录不同蚂蚁种类的数量; int main(){ int n,m,a,b,x; while(scanf("%d%d%d%d",&n,&m,&a,&b)!=EOF){ memset(num,0,sizeof(num)); for(int i=0;i<m;i++){ scanf("%d",&x); num[x]++; } memset(dp,0,sizeof(dp)); for(int i=0;i<=num[1];i++) dp[1][i]=1; for(int i=2;i<=n;i++){ for(int j=0;j<=b;j++){//数量小于等于b; for(int k=0;k<=num[i];k++){ if(j>=k) { dp[i][j]+=dp[i-1][j-k];//动态转移方程; dp[i][j]%=1000000; } } } } int ans=0; for(int i=a;i<=b;i++){ ans+=dp [i]; ans%=1000000; } printf("%d\n",ans); } return 0; }
相关文章推荐
- 基于Android中dp和px之间进行转换的实现代码
- Android中dip、dp、sp、pt和px的区别详解
- Android对px和dip进行尺寸转换的方法
- Android根据分辨率进行单位转换-(dp,sp转像素px)
- android 尺寸 dp,sp,px,dip,pt详解
- 用单调栈解决最大连续矩形面积问题
- 2632 Crashing Robots的解决方法
- 1573 Robot Motion (简单题)
- poj 2485 Highways
- poj 1511 Invitation Cards
- poj1042
- poj1080
- poj1088
- poj1063 Flip and Shift
- Android 不同分辨率下如何使字体大小随之变化
- poj 3249 Test for Job 最长路
- HDU4758 AC自动机+DP (HDU4758与HDU2222)
- [LeetCode] Distinct Subsequences
- [LeetCode] Interleaving String
- [LeetCode] Unique Binary Search Tree