Codeforces gym 101102 A dp
来源:互联网 发布:广州淘宝拍照的地方 编辑:程序博客网 时间:2024/05/19 22:51
题意:第一个人有n枚硬币 第二个人有m枚硬币 两个人付的钱数差不能超过k 组成w的方案数
题解:先用dp求出两个人小于w钱数的方案 然后枚举k 求出答案 累加
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;typedef long long ll;const ll MOD = (ll)1e9+7;ll dp1[15005],dp2[15005];int main(){int t;scanf("%d",&t);while(t--){memset(dp1,0,sizeof(dp1));memset(dp2,0,sizeof(dp2));int n,m,w,k;scanf("%d%d%d%d",&n,&m,&k,&w);int sum=0;dp1[0]=dp2[0]=1;for(int i=1;i<=n;i++){int x;scanf("%d",&x);sum+=x;for(int j=sum;j>=x;j--){dp1[j]+=dp1[j-x];dp1[j]%=MOD;}}sum=0;for(int i=1;i<=m;i++){int x;scanf("%d",&x);sum+=x;for(int j=sum;j>=x;j--){dp2[j]+=dp2[j-x];dp2[j]%=MOD;}}ll ans=0;for(int i=0;i<=w;i++){int j=w-i;if(abs(i-j)>k)continue;ans+=dp1[i]*dp2[j]%MOD;ans%=MOD;}printf("%lld\n",ans);}return 0;}
0 0
- Codeforces gym 101102 A dp
- Codeforces gym 101350A dp
- codeforces Gym 101102A
- Codeforces Gym 100325A String Decomposition 字符串DP
- Codeforces Gym 100096A Athletic competition 树型DP
- codeforces gym 100645A
- CodeForces Gym 100803A
- Codeforces Gym 100372A
- 【Codeforces Gym 100187A】
- Codeforces Gym 100340A Cookies
- codeforces gym 100827A Runes
- Codeforces GYM 100340A Cookies
- Codeforces gym 101343 A 数论
- Codeforces Rating Gym-101028A
- codeforces Gym 101102F
- Codeforces Gym 100889 A. A Beautiful Array
- CodeForces Gym 100989A LCS (A)
- Codeforces Gym 101158 A. Rearranging a Sequence
- 51nod 乘法逆元(扩展欧几里得)
- Hibernate 异常StrategySelectionException: Unable to resolve name EhCacheRegionFactory
- 阻止冒泡
- 数据结构——栈的学习
- 随手记录-通信协议基础知识
- Codeforces gym 101102 A dp
- 如何用一个宏将一个数字的奇数位和偶数位交换
- JS 中除cookie存储外,还有哪些存储方式?
- Servlet--登录案例及编码解决方案
- JSON学习笔记
- AndroidAnnotations注解框架
- 随手记录--网络编程
- Hibernate 异常CacheException: Another unnamed CacheManager already exists in the same VM
- hust 5239 Doom(线段树 规律OR数论 待整理 )