bzoj1042硬币购物

Posted zcysky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj1042硬币购物相关的知识,希望对你有一定的参考价值。

容斥

#include<bits/stdc++.h>
#define N 100005
typedef long long ll;
using namespace std;
ll ans,f[N];
int c[10],d[10],T;
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]);
    dfs(x+1,k,sum);
}
inline int read(){
    int f=1,x=0;char ch;
    do{ch=getchar();if(ch==-)f=-1;}while(ch<0||ch>9);
    do{x=x*10+ch-0;ch=getchar();}while(ch>=0&&ch<=9);
    return f*x;
}
int main(){
    for(int i=1;i<=4;i++)c[i]=read();
    T=read();f[0]=1;
    for(int i=1;i<=4;i++)for(int j=c[i];j<=100000;j++)f[j]+=f[j-c[i]];
    while(T--){
        for(int i=1;i<=4;i++)d[i]=read();
        int x=read();ans=0;
        dfs(1,0,x);
        printf("%lld\n",ans);
    }
    return 0;
}

 

以上是关于bzoj1042硬币购物的主要内容,如果未能解决你的问题,请参考以下文章

bzoj 1042: [HAOI2008]硬币购物

BZOJ1042[HAOI2008]硬币购物 容斥

bzoj 1042: [HAOI2008]硬币购物 dp+容斥原理

bzoj 1042: [HAOI2008]硬币购物

bzoj1042 HAOI2008—硬币购物

BZOJ-1042: [HAOI2008]硬币购物 (背包DP+容斥原理)