【BZOJ】1042 [HAOI2008]硬币购物 组合数学(容斥)
来源:互联网 发布:java开发知识 编辑:程序博客网 时间:2024/06/05 08:34
题目传送门
好像容斥原理在OI的应用挺广泛的啊……先奶一口再说
这题的容斥方法用的非常巧妙,定义
然后就是重点:考虑容斥,每一次询问的答案
假设第一种硬币超过数量限制,也就是用到
附上AC代码:
#include <cstdio>using namespace std;typedef long long ll;const int n=4;int c[5],d[5],m,x;ll f[100010],ans;inline void so(int g,int k,int sum){ if (sum<0) return; if (g>n) return (void)(ans-=(k?f[sum]:-f[sum])); return so(g+1,k^1,sum-(d[g]+1)*c[g]),so(g+1,k,sum);}int main(void){ for (int i=1; i<=n; ++i) scanf("%d",&c[i]); f[0]=1; for (int i=1; i<=n; ++i) for (int j=c[i]; j<=100000; ++j) f[j]+=f[j-c[i]]; scanf("%d",&m); while (m--){ for (int i=1; i<=n; ++i) scanf("%d",&d[i]); scanf("%d",&x),ans=0,so(1,0,x),printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- 【BZOJ】1042 [HAOI2008]硬币购物 组合数学(容斥)
- bzoj 1042: [HAOI2008]硬币购物(容斥原理)
- BZOJ 1042: [HAOI2008]硬币购物 (dp + 容斥)
- 【bzoj 1042】 [HAOI2008] 硬币购物(dp+容斥原理)
- bzoj 1042: [HAOI2008]硬币购物(dp+容斥)
- BZOJ 1042 HAOI2008 硬币购物 背包+容斥原理
- BZOJ 1042 [HAOI2008]硬币购物 容斥原理
- BZOJ 1042: [HAOI2008]硬币购物 DP,与处理,容斥
- [BZOJ 1042][HAOI2008]硬币购物:容斥原理
- BZOJ 1042:[HAOI2008]硬币购物 容斥原理 背包dp
- BZOJ 1042: [HAOI2008]硬币购物【容斥】【01背包】
- 1042: [HAOI2008]硬币购物(dp+容斥原理)
- BZOJ 1042: [HAOI2008]硬币购物
- BZOJ 1042: [HAOI2008]硬币购物
- BZOJ 1042: [HAOI2008]硬币购物
- 【BZOJ 1042】 [HAOI2008]硬币购物
- [BZOJ 1042][HAOI2008]硬币购物
- BZOJ 1042: [HAOI2008]硬币购物
- jvm中实例(引用),对象存储位置
- -bash: mkfir: command not found -bash: wget: command not found
- 华为7.0 Popupwindow 闪烁
- java连接JDK内置的derby数据库(以服务方式启动)
- 值得借鉴:耗时两个月的求职经历
- 【BZOJ】1042 [HAOI2008]硬币购物 组合数学(容斥)
- c#读取Excel数据不全
- 房屋染色-LintCode
- MFC下屏蔽ESC、回车键以及ALT+F4
- listView Item中动态或复杂布局时getview调用两遍造成刷新后控件相互错乱解决方案
- Mac系统Superset 安装并在Pycharm中编译
- unigrams,bigrams,trigrams
- 【背包+容斥】BZOJ1042(HAOI2008)[硬币购物]题解
- Spark强大的函数扩展功能之udf