http://www.lydsy.com/JudgeOnline/problem.php?id=1042

题意:

思路:

如果不考虑硬币个数的话,这就是一道完全背包的题目。

直接求的话行不通,于是这里要用容斥原理来做。

简单来说,ans=一种没超-一种硬币超+两种硬币超-三种硬币超+四种硬币超。

 /**************************************************************
Problem: 1042
User: Vortex
Language: C++
Result: Accepted
Time:60 ms
Memory:2068 kb
****************************************************************/ #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<sstream>
#include<vector>
#include<stack>
#include<queue>
#include<cmath>
#include<map>
#include<set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pll;
const int INF = 0x3f3f3f3f;
const int maxn = + ; int s;
ll ans;
int c[],d[];
ll f[maxn]; void init()
{
memset(f,,sizeof(f));
f[]=;
for(int i=;i<=;i++)
{
for(int j=c[i];j<=;j++)
f[j]+=f[j-c[i]];
}
} void dfs(int cur, int cnt, int sum)
{
if(sum<) return;
if(cur==)
{
if(cnt&) ans-=f[sum];
else ans+=f[sum];
return;
}
dfs(cur+,cnt+,sum-(d[cur]+)*c[cur]);
dfs(cur+,cnt,sum);
} int main()
{
//freopen("in.txt","r",stdin);
int T;
for(int i=;i<=;i++) scanf("%d",&c[i]);
scanf("%d",&T);
init();
while(T--)
{
for(int i=;i<=;i++) scanf("%d",&d[i]);
scanf("%d",&s);
ans=;
dfs(,,s);
printf("%lld\n",ans);
}
return ;
}

最新文章

  1. Android OutOfMemoryError的理解
  2. 使用Docker搭建Java Web运行环境
  3. spring-boot-starter-amqp踩坑记
  4. 复利test
  5. C#中Delegate
  6. c++ de-mangle 反编译器命名工具:c++filt
  7. linux上TCP connection timeout的原因查找
  8. 练习2 B题 - 求绝对值
  9. mysql索引和缓存
  10. HDU 3696 Farm Game
  11. vs2015添加T4模版
  12. 题解 P3246 【[HNOI2016]序列】
  13. Centos 6.8安装ideaIU-2017.2.6-no-jdk
  14. Jq_DOM元素方法跟JQuery 核心函数跟JQuery 事件方法
  15. NHibernate中Session的处理 线程不安全
  16. vim编辑文件警告Swap file already exists ,如何删除vim编辑产生的.swp文件?查看隐藏文件命令
  17. Spring MVC学习回顾
  18. The Difference Between Big Data and a Lot of Data
  19. 由于BOM头导致的Json解析出错
  20. 我的Android进阶之旅------>Android中Dialog系统样式讲解

热门文章

  1. strace命令的使用
  2. centos7关闭自动锁屏
  3. sping整合quartz
  4. java获取年份的第一天和最后一天
  5. java 新手入门课程03
  6. PL/SQL Developer登入时候报ORA-12638
  7. HDU_3183_A Magic Lamp
  8. fork(2) - Linux man page
  9. MYSQL查看数据表最后更新时间
  10. Python量化教程 常用函数