bzoj1042: [HAOI2008]硬幣購物

來源:互聯網
上載者:User

標籤:

容斥原理。 算出不限制硬幣數量的方案,-限制1+限制2-限制3+限制4。

限制就是用d+1個硬幣。

#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int maxn = 100000+10;long long f[maxn],res;int t,c[5],d[5];void dfs(int dep,int sum,int k) {    if(dep==5) {        if(k&1) res-=f[sum];        else res+=f[sum];    }    else {        dfs(dep+1,sum,k);        if(c[dep]*(d[dep]+1)<=sum)             dfs(dep+1,sum-c[dep]*(d[dep]+1),k+1);    }}int main() {    for(int i=1;i<=4;i++) scanf("%d",&c[i]);    scanf("%d",&t);    f[0]=1;    for(int i=1;i<=4;i++)     for(int j=c[i];j<maxn;j++)        f[j]+=f[j-c[i]];        for(int i=1,s;i<=t;i++) {        for(int j=1;j<=4;j++) scanf("%d\n",&d[j]);        scanf("%d",&s);        res=0;        dfs(1,s,0);        printf("%lld\n",res);    }    return 0;}

bzoj1042: [HAOI2008]硬幣購物

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.