題面
這道題我是親自在考場上考過的
先說題解吧
乙個貨幣系統中 x
xx是沒用的,當且僅當他能被系統中別的貨幣表示
我們拿rmb
rmbrm
b來舉個例子
發現所有的錢都能被一分錢表示出來 所以只留乙個一分錢的就好了!
啪咳咳 不鬧了
題面可以簡述為:給你乙個貨幣系統a
aa 讓我們可以給他簡化 使得所有可以表示的錢還能表示出來。輸出最後簡化剩下的貨幣數量。
我們考慮乙個像揹包的東西,由於我菜逼的揹包技術,我也不知道這是啥揹包…反正我能做出來我樂意
每次操作到a
ia_i
ai時,考慮能不能被它前面的數字所組成
我們知道如果x
xx能被前i
ii個數組成且組成x
xx的數當中包含a
ia_i
ai那麼(x−
ai
)(x-a_i)
(x−ai
)也必然能被前i
ii個數來組成
那麼我們很容易想到定義f(x
)f(x)
f(x)
表示x
xx能否被組成,那麼根據上面的想法顯然有f(x
)=f(
x)∨f
(x−a
i)
f(x) = f(x) \vee f(x-a_i)
f(x)=f
(x)∨
f(x−
ai)
。直接上**
#include
using
namespace std;
inline
void
read
(int
&x)while
(ch>=
'0'&&ch<=
'9')
x=s*w;
}int t,n,ans,a[
101]
;bool vis[
30000];
intmain()
printf
("%d\n"
,ans);}
}
這幾天要好好複習揹包九講了,別再像去年那樣連這種水分都不要… 2018D1T2 貨幣系統
記貨幣種類為 n 面額陣列為 a 1.n 的貨幣系統為 n,a 貨幣系統 n,a 與 m,b 等價,當且僅當對於 forall x in mathbf n x 要麼均可以被兩個貨幣系統表示,或者不能被任何乙個表示。給定乙個貨幣系統 n,a 求與其等價的貨幣系統 m,b 並使 m 盡可能小。我們把貨幣...
NOIP2018 D1T1 鋪設道路
目錄春春是一名道路工程師,負責鋪設一條長度為 n 的道路。鋪設道路的主要工作是填平下陷的地表。整段道路可以看作是 n 塊首尾相連的區域,一開始,第 i 塊區域下陷的深度為 di。春春每天可以選擇一段連續區間 l,r 填充這段區間中的每塊區域,讓其下陷深度減少 1。在選擇區間時,需要保證,區間內的每塊...
NOIp 2018 D2T1 旅行 未完成
這個題沒有認真讀的話就會寫下以下的dd include define n 5010 using namespace std intn,m intans n actr inthead n ectr bool vis n struct edgeedge n 1 void addedge int from...