zoukankan      html  css  js  c++  java
  • 【BZOJ1042】【DP + 容斥】[HAOI2008]硬币购物

    Description

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

    Input

    第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,s

    Output

    每次的方法数

    Sample Input

    1 2 5 10 2
    3 2 3 1 10
    1000 2 2 2 900

    Sample Output

    4
    27

    HINT

    数据规模
    di,s<=100000
    tot<=1000

    【分析】

    不是数学吗?容斥也算数学吧...

    进行一下预处理,求出在可以任取硬币的条件下f(i) 为取得价值为i的方案总数。

    然后容斥用总超过限制-1超过限制-2超过限制-3超过限制-4超过限制+1、2超过限制...

    怎么算1超过限制?设s为总价值,1的限制量为d[i],价值为c[i],则1超过限制量为f[s - (d[i] + 1) * c[i]]。

    代码复杂度很低,不写了。

  • 相关阅读:
    比SRCNN效果好的传统超分辨率算法汇总
    CSS3 2D转换
    CSS3 文本效果
    CSS3 Gradients(渐变)
    CSS3 背景
    CSS3 圆角
    CSS3 边框
    CSS3 简介
    CSS 属性选择器
    CSS 媒体类型
  • 原文地址:https://www.cnblogs.com/hoskey/p/4385465.html
Copyright © 2011-2022 走看看