题意:硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值的东西。请问每次有多少种付款方法。

思路:这么老的题,居然今天才做到...背包的复杂度是比较高的。 加上tot次询问会爆炸。能不能预处理,然后容斥得到答案呢?
      先求一个完全背包,求出方案数,dp[]。
      然后对于具体的询问,减去不合法的情况 。
      对于c[i],它发贡献是dp[S-c[i]*(d[i]+1)];
      那么会重复减,所以又加回来...

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define ll long long
using namespace std;
const int maxn=;
ll dp[maxn],c[],d[],S,ans;
void dfs(int pos,int num,ll sum)
{
if(pos==){
if(sum>=) {
if(num&) ans-=dp[sum];
else ans+=dp[sum];
}
return ;
}
dfs(pos+,num+,sum-c[pos]*(d[pos]+));
dfs(pos+,num,sum);
}
int main()
{
int Q;
rep(i,,) scanf("%lld",&c[i]);
dp[]=;
rep(i,,)
rep(j,c[i],) dp[j]+=dp[j-c[i]];
scanf("%d",&Q);
while(Q--){
rep(i,,) scanf("%lld",&d[i]);
scanf("%lld",&S); ans=; dfs(,,S);
printf("%lld\n",ans);
}
return ;
}

最新文章

  1. ASP.NET MVC 5调用其他Action
  2. 简单设置eworkflow条件的方式
  3. 自定义浏览器协议,实现web程序调用本地程序
  4. Rsync+lsync实现触发式实时同步
  5. 【CodeVS】p1299 切水果
  6. CSS打造经典鼠标触发显示选项
  7. jdk和eclipse位数不一致出错
  8. fastica matlab 转载
  9. 设计模式18---设计模式之策略模式(Strategy)(行为型)
  10. airdrop-ng/aircrack-ng
  11. 数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
  12. Android6.0运行时权限(基于RxPermission开源库)
  13. radio,check美化
  14. HDU 1115(求质量均匀分布的多边形重心 物理)
  15. 067 Flume协作框架
  16. mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装
  17. 关于如何食用Xcode——用mac的小蒟蒻
  18. Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)
  19. MFC数据库操作
  20. 移动App中常见的Web漏洞

热门文章

  1. NanoPi NEO Plus2开发环境搭建
  2. 第十六节:Asp.Net Core中Session的使用、扩展、进程外Session
  3. 【数据结构与算法】线性表操作(C++)
  4. 算法设计与分析(李春保)练习题答案v1
  5. 【题解】Luogu P5468 [NOI2019]回家路线
  6. Java的jdk环境变量配置
  7. (7)ASP.NET Core 中的错误处理
  8. html 显示 pdf
  9. Ubuntu系统下基于docker部署Jenkins环境
  10. python爬虫---爬虫的数据解析的流程和解析数据的几种方式