【BZOJ1042】硬幣購物(動態規劃,容斥原理)

【BZOJ1042】硬幣購物(動態規劃,容斥原理)

題面

BZOJ

Description

  硬幣購物一共有4種硬幣。面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買s
i的價值的東西。請問每次有多少種付款方法。

Input

  第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,s,其中di,s<=100000,tot<=1000

Output

  每次的方法數

Sample Input

1 2 5 10 2

3 2 3 1 10

1000 2 2 2 900

Sample Output

4

27

題解

真題真好啊。

先不考慮任何有關于硬幣個數的限制
\(f[i]\)表示沒有任何限制的情況下,價格為\(n\)的方案數
直接做一個背包就行了。

現在加上限制來看,我們用總方案減去不合法。
總方案是\(f[n]\),不合法呢?
某一個硬幣如果不合法,那么它就要用\(d+1\)
剩下的隨便選,也就是\(f[n-c*(d+1)]\)
這樣直接容斥計算即可。

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define ll long long
#define RG register
inline int read()
{RG int x=0,t=1;RG char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')t=-1,ch=getchar();while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();return x*t;
}
int c[4],d[4],S;
ll f[111111];
int main()
{for(int i=0;i<4;++i)c[i]=read();f[0]=1;for(int k=0;k<4;++k)for(int j=c[k];j<=100000;++j)f[j]+=f[j-c[k]];int Q=read();while(Q--){for(int i=0;i<4;++i)d[i]=read();S=read();ll ss,ans=0;for(int i=0,tt;i<16;++i){ss=tt=0;for(int j=0;j<4;++j)if(i&(1<<j))++tt,ss+=(d[j]+1)*c[j];if(ss>S)continue;(tt&1)?ans-=f[S-ss]:ans+=f[S-ss];}printf("%lld\n",ans);}return 0;
}

轉載于:https://www.cnblogs.com/cjyyb/p/8656700.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280800.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280800.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280800.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ios 啟用 證書_如何在iOS 10中啟用就寢提醒,輕柔的喚醒和睡眠跟蹤

ios 啟用 證書If you have trouble regularly getting a full night’s sleep, the new Bedtime feature in iOS 10 might just help. Set a wake up time and how many hours of sleep you need, and iOS offers bedtime reminders, more gentle alarms, and basic sleep trac…

struts OGNL表達式

OGNLContext對象有兩部分構成 一部分是ROOT&#xff1a;可以放置任何對象作為ROOT 另外一部分Context&#xff1a;必須是Map形式&#xff08;鍵值對&#xff09; OGNL表達式操作 package cn.future.a_ognl;import java.util.HashMap; import java.util.Map;import ognl.Ognl; i…

纖程(FIBER)

Indy 10 還包含對纖程的支持。纖程是什么&#xff1f;簡單來說&#xff0c;它也是 一個“線程”&#xff0c;但是它是由代碼控制的&#xff0c;而不是由操作系統控制的。實際上&#xff0c;可以認為線程 是一個高級纖程。纖程和 Unix 用戶線程(Unix user threads)很相似。 線程…

制作一個用戶頭像選擇器仿 WeGame

制作一個用戶頭像選擇器仿 WeGameCropAvatar作者&#xff1a;WPFDevelopersOrg - 驚鏵原文鏈接&#xff1a;https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用.NET40&#xff1b;Visual Studio 2019;制作一個用戶頭像選擇Canvas為父控件所實現&#xff0c;展示圖片使…

PS2019進階筆記(二)

云端網校筆記&#xff08;PS2015&#xff09; 一、圖層混合模式 圖層面板上的左上角&#xff0c;默認正常 混合下面圖層&#xff0c;下面正片&#xff08;如模特&#xff09;。 最常用是&#xff1a;不透明度 溶解&#xff1a;需調節透明度 變暗組&#xff1a; 亮區域去除…

Html5里frameSet不在使用的替代方法,使用ifram

原來得使用方式&#xff1a; <frameset rows"100,*" frameborder"0"><frame name"header" src"header.aspx"></frame><frameset cols"15%, *"><frame name"menu" src"left.aspx&…

網曝南方電網搞末位淘汰和裁員,給各下屬單位強制規定辭退率和降崗降級率!...

電網作為壟斷性國企&#xff0c;在人們心中一向是好單位的代名詞&#xff0c;但最近卻有網友曝光南方電網搞末位淘汰和裁員&#xff0c;給各單位下了辭退率和降崗降級率&#xff0c;每個單位都要開除一部分人&#xff0c;或者把一部分人崗級降下來。有南方電網員工馬上跑出來辟…

二維數組中的查找

2019獨角獸企業重金招聘Python工程師標準>>> 題目 在一個二維數組中&#xff0c;每一行中的數都按照從左到右、從上到下的遞增順序排列。要求輸入一個整數&#xff0c;判斷數組中是否存在該整數 實現代碼 function find($matrix, $rows, $columns, $key) {//TODO 參…

C# JObject轉換JSON文件相關處理

一、JObject.Parse 1.把整個json文件字符串轉化成JObject格式。 JObject jsonData JObject.Parse(jsonString); 2.逐級轉換成JObject 最低級是"Device": "Windowsr"&#xff0c;字典。 jsonData JObject.Parse(jsonData[jsonName][jsonIndex].ToStr…

通過修改然后commit的方式創建自己的鏡像

創建自己的鏡像&#xff1a;通過現有的鏡像來創建自己的鏡像。1、首先拉取一個鏡像到本地$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEubuntu 12.04 5b117edd0b76 11 months…

hdu6103[尺取法] 2017多校6

/*hdu6103[尺取法] 2017多校6*/ #include <bits/stdc.h> using namespace std; int T, m; char str[20005]; void solve() {int ans 0;int n strlen(str);for (int i 0; i < n; i) {int l 0, r 0, p1 i, p2 i 1, cost 0;while (p1 - r > 0 && p2 …

藍牙追蹤_如何使用藍牙追蹤器跟蹤您的東西

藍牙追蹤We’ve all done it: you misplace something important and you spend a lot of time (with a lot of stress) backtracking to locate it again. With Bluetooth tracking devices you can make the hunt a lot easier, less stressful, and even avoid losing the t…

遠程訪問CENTOS的MYSQL數據庫設置

遠程訪問CENTOS的MYSQL數據庫設置 mysql -u root grant all privileges on *.* to root%identified by root; 后面的root是root用戶的密碼 grant all privileges on *.* to rootlocalhostidentified by root; mysql -u root -p

ShardingCore 7.0 版本發布

NCC ShardingCore 是一款 EntityFramework Core based 高性能、輕量級、分表分庫、讀寫分離解決方案&#xff0c;具有零依賴、零學習成本、零業務代碼入侵等特點。ShardingCore 7.0 已于近期發布。從 ShardingCore 7.0 開始&#xff0c;啟用版本號第二位來對應不同的 EFCore 版…

搬運 centos7.2 apache 綁定二級目錄 訪問依然是apache頁面

<VirtualHost *:80>ServerName xx.comDocumentRoot /var/www/html/xx</VirtualHost> 轉載于:https://www.cnblogs.com/kiimi/p/8662490.html

django09: ORM以及CSRF(舊筆記)

ORM相當于程序里的數據庫操作 ORM(一) https://www.cnblogs.com/liwenzhou/p/8688919.html ORM(二) https://www.cnblogs.com/liwenzhou/p/8660826.html CSRF:防止網站請求偽造&#xff0c;即釣魚網 在Form表達添加&#xff1a;{% csrf_toker %}

vba發送郵件 簽名_如何更改“從Windows 10的郵件發送”簽名

vba發送郵件 簽名The Windows 10 Mail app is a decent email client that allows you to add other email accounts in addition to your Microsoft accounts. You’ll notice, though, that any emails you write in the Mail app have a default signature. Windows 10 Mail…

JAVA_SE基礎——24.面向對象的內存分析

黑馬程序猿入學blog ... 接著上一章的代碼&#xff1a; //車類 class Car{//事物的公共屬性使用成員變量描寫敘述。String name; //名字的屬性 String color; //顏色屬性 int wheel; //輪子數 //事物的公共行為使用函數描寫敘述。 public void run(){ System.out.println(name&…

煮茶社區AVR開發板第二版[轉]

原圖:http://blossom.cnblogs.com/gallery/image/21891.html

[Kogel.Subscribe.Mssql]SQL Server增量訂閱,數據庫變更監聽

此框架是SQL Server增量訂閱&#xff0c;用來監聽增刪改數據庫數據變更目前僅支持SQL Server&#xff0c;后續會支持MySQL和Oracle&#xff0c;Nuget上可以下載安裝或者使用Nuget命令添加包dotnet add package Kogel.Subscribe.Mssql --version 0.0.0.1可以用來處理DB主從同步&…