zoukankan      html  css  js  c++  java
  • 【HAOI2008】硬币购物

    题面

    https://www.luogu.org/problem/P1450

    题解

    先完全背包,再考虑限制,容斥算一下就可以了。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #define N 100500
    #define ri register int
    #define int long long 
    using namespace std;
    
    int c1,c2,c3,c4,tot;
    int d1,d2,d3,d4,s;
    int f[N];
    
    int dp(int x) {
      if (x<0) return 0; else return f[x];
    }
    
    #undef int
    int main() {
    #define int long long
      cin>>c1>>c2>>c3>>c4>>tot;
      f[0]=1;
      for (ri i=c1;i<N;i++) f[i]+=f[i-c1];
      for (ri i=c2;i<N;i++) f[i]+=f[i-c2];
      for (ri i=c3;i<N;i++) f[i]+=f[i-c3];
      for (ri i=c4;i<N;i++) f[i]+=f[i-c4];
      for (ri i=1;i<=tot;i++) {
        cin>>d1>>d2>>d3>>d4>>s;
        int a=(d1+1)*c1,b=(d2+1)*c2,c=(d3+1)*c3,d=(d4+1)*c4;
        cout<<f[s]-dp(s-a)-dp(s-b)-dp(s-c)-dp(s-d)+dp(s-a-b)+dp(s-a-c)+dp(s-a-d)+dp(s-b-c)+dp(s-b-d)+dp(s-c-d)
        -dp(s-a-b-c)-dp(s-a-b-d)-dp(s-a-c-d)-dp(s-b-c-d)+dp(s-a-b-c-d)<<endl;
      }
      return 0;
    }
  • 相关阅读:
    测试的种类
    软件测试的原则
    软件测试的目的
    软件测试的对象
    软件的分类
    软件测试
    mysql 视图
    mysql 字段添加以及删除
    mysql 引擎类型
    mysql 数据插入insert
  • 原文地址:https://www.cnblogs.com/shxnb666/p/11479838.html
Copyright © 2011-2022 走看看