BZOJ 1042 硬币购物 (数论 容斥)
来源:互联网 发布:下载云端软件 编辑:程序博客网 时间:2024/06/05 15:18
1042: [HAOI2008]硬币购物
Time Limit: 10 Sec Memory Limit: 162 MB
Description
硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买s
i的价值的东西。请问每次有多少种付款方法。
Input
第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,s,其中di,s<=100000,tot<=1000
Output
每次的方法数
Sample Input
1 2 5 10 2
3 2 3 1 10
1000 2 2 2 900
Sample Output
4
27
思路:
一道容斥题目,说实话不好想,理解起来也有一定难度。这里辣鸡的我就不展开说了。大家感性地认识一下就好。
#include <cstdio>#define LL long longLL d[5], c[5], f[200010];int T, tot;LL ans;void dfs(int x, int k, int sum){ if(sum < 0) return; if(x == 5){ if(k & 1) ans -= f[sum]; else ans += f[sum]; return; } dfs(x+1, k+1, sum - (d[x]+1) * c[x]);//保证第x枚硬币超额 dfs(x+1, k, sum);//保证第x枚硬币不超额 }int main(){ for(int i=1; i<=4; i++) scanf("%lld",&c[i]); f[0] = 1; for(int i=1; i<=4; i++) for(int j=c[i]; j<=100010; j++) f[j] += f[j-c[i]];//完全背包,不计限额 scanf("%d", &T); while( T-- ){ for(int i=1; i<=4; i++) scanf("%lld", &d[i]); scanf("%d", &tot); ans = 0; dfs(1, 0, tot); printf("%lld\n", ans); } return 0;}/*最终的限额方案数=不限额的方案数-(第1种硬币超额的方案数+第2种硬币超额的方案数+第3种硬币超额的方案数+第4种硬币超额的方案数) +(第1,2种硬币超额的方案数+第2,3种硬币超额的方案数+第3,4种硬币超额的方案数) -(第1,2,3种硬币超额的方案数+第2,3,4种硬币超额的方案数) +(第1,2, 3, 4种硬币超额的方案数)*/
阅读全文
0 0
- BZOJ 1042 硬币购物 (数论 容斥)
- bzoj 1042: [HAOI2008]硬币购物(容斥原理)
- BZOJ 1042: [HAOI2008]硬币购物 (dp + 容斥)
- 【bzoj 1042】 [HAOI2008] 硬币购物(dp+容斥原理)
- bzoj 1042: [HAOI2008]硬币购物(dp+容斥)
- 【BZOJ】1042 [HAOI2008]硬币购物 组合数学(容斥)
- BZOJ 1042 HAOI2008 硬币购物 背包+容斥原理
- [BZOJ 1042][HAOI 2008]硬币购物(背包+容斥原理)
- BZOJ 1042 HAOI 2008 硬币购物 容斥原理
- BZOJ 1042 [HAOI2008]硬币购物 容斥原理
- BZOJ 1042: [HAOI2008]硬币购物 DP,与处理,容斥
- 【BZOJ 1042】【HAOI 2008】硬币购物【DP+容斥】
- [BZOJ 1042][HAOI2008]硬币购物:容斥原理
- BZOJ 1042:[HAOI2008]硬币购物 容斥原理 背包dp
- BZOJ 1042: [HAOI2008]硬币购物【容斥】【01背包】
- 1042: [HAOI2008]硬币购物(dp+容斥原理)
- BZOJ1042:硬币购物(背包 & 容斥)
- BZOJ-1042 [HAOI2008]硬币购物 容斥原理 +01背包方案数
- D
- 51Nod--1008 N的阶乘 mod P
- linux系统java环境配置命令和MySql数据库之简化版(转自王大锤大神)
- K-means 和 K-medoids算法聚类分析
- ECMAScript6(4):字符串类型扩展
- BZOJ 1042 硬币购物 (数论 容斥)
- matlab保存figure中的图片去掉白边
- PHP防SQL注入记录
- 93 C语言数组指针(指向数组的指针)
- android studio的adb端口被占解决方法
- 自学Java之Java编程(序列化和查看对象)(016day)
- USACO-section 1.3 Prime Cryptarithm[hash]
- 解决configure: error: Please reinstall the libcurl
- 微信开发 提示 Redirect_uri参数错误