设f[i]为凑i元的方案数,这个随便dp一下就行了

然后处理限制,我们考虑用容斥,也就是4个超限-3个超限+2个超限-1个超限,这里用状压枚举一下,然后i硬币超限就当做选了d[i]+1个,在s里减去,最后用来容斥的就是f[s']

#include<iostream>
#include<cstdio>
using namespace std;
const long long N=100005;
long long c[10],T,d[10],s,f[N],ans;
long long read()
{
long long r=0;
char p=getchar();
while(p>'9'||p<'0')
p=getchar();
while(p>='0'&&p<='9')
{
r=r*10+p-48;
p=getchar();
}
return r;
}
int main()
{
c[1]=read(),c[2]=read(),c[3]=read(),c[4]=read(),T=read();
f[0]=1;
for(long long j=1;j<=4;j++)
for(long long i=1;i<=N-5;i++)
if(i>=c[j])
f[i]+=f[i-c[j]];
while(T--)
{
ans=0ll;
d[1]=read(),d[2]=read(),d[3]=read(),d[4]=read(),s=read();
for(long long i=0;i<=15;i++)
{
long long t=1,sum=s;
for(long long j=1;j<=4;j++)
if(i&(1<<(j-1)))
{
t=-t;
sum-=(d[j]+1)*c[j];
}
if(sum>=0)
ans+=t*f[sum];
}
printf("%lld\n",ans);
}
return 0;
}

最新文章

  1. 安装 pyopenssl c/_cffi_backend.c:15:17: 致命错误:ffi.h:
  2. SQL Pass北京举办第11次线下活动,欢迎报名(本次活动特别邀请了来自微软总部Xin Jin博士)
  3. RecyclerView,CardView导入和使用(Demo)
  4. Linux 通过os进程pid找到端口号
  5. Spring Boot Admin的使用
  6. Linux第二次报告20135221
  7. 微信支付开发(12) 认清微信支付v2和v3
  8. oracle参数与启停
  9. 【8】了解Bootstrap栅格系统基础案例(3)
  10. Maven内置隐式变量
  11. struts2 0day漏洞
  12. 5w2h分析法则
  13. scss 初学笔记 二 混合宏
  14. Docker: Jenkins与Docker的自动化CI/CD流水线实战
  15. Android八门神器(一): OkHttp框架源码解析
  16. Mac下的效率工具autojump
  17. ubantu16.04安装ns2.34 错误
  18. Eclipse 保存文件时自动格式化代码
  19. mysql 数据库简介
  20. C# skip 重试执行代码段

热门文章

  1. windows7 下安装使用Redis
  2. poj1459多源多汇最大流问题
  3. Xcode warning: code will never be executed.
  4. ubuntu 14.04 安装docker,docker-compose
  5. Codeforces 549C(博弈)
  6. Linux信号通讯编程
  7. Cocos2d-x 3.1.1 学习日志12--一Cocos2dx3.1.1移植到Android平台的方法(最实用最有效的!!)
  8. cocos2d-x CCSrollView 源代码,可循环的SrollView代码
  9. Tcl学习之--列表|字典
  10. android 不同进程间的调用 AIDL 实现通讯服务