貨幣系統(從今天開始搬到部落格園)

2022-02-07 13:49:20 字數 2256 閱讀 1780

去年參加了noip提高一日遊,去見識了一下高階考試,沒想到趕上了day1特水的好日子。

然而我還是只做出了一題,也就是t1。去年考場上我沒看出來是個揹包,寫了乙個奇怪的騙分隨便拿了幾分。總之去年真的是提高一日遊,本來就不準備拿分的。

然而今年csp2019了,馬上又要考試了,回頭看看去年的題目,發現題庫裡這題還沒寫,就順便水一篇bolg吧。

1914. noip2018提高組day1_2.貨幣系統

時間限制

空間限制

輸入檔案

輸出檔案

1s512mb

money.in

money.out

題目描述

在網友的國度中共有 n 種不同面額的貨幣,第 i 種貨幣的面額為 a[i],你可以假設每一種貨幣都有無窮多張。為了方便,我們把貨幣種數為 n、面額陣列為 a[1..n] 的貨幣系統記作 (n,a)。

在乙個完善的貨幣系統中,每乙個非負整數的金額 x 都應該可以被表示出,即對每乙個非負整數 x,都存在 n 個非負整數 t[i] 滿足 a[i]×t[i] 的和為 x。然而, 在網友的國度中,貨幣系統可能是不完善的,即可能存在金額 x 不能被該貨幣系統表示出。例如在貨幣系統 n=3, a=[2,5,9]中,金額 1,3 就無法被表示出來。

兩個貨幣系統 (n,a) 和 (m,b) 是等價的,當且僅當對於任意非負整數 x,它要麼均可以被兩個貨幣系統表出,要麼不能被其中任何乙個表出。

現在網友們打算簡化一下貨幣系統。他們希望找到乙個貨幣系統 (m,b),滿足 (m,b) 與原來的貨幣系統 (n,a) 等價,且 m 盡可能的小。他們希望你來協助完成這個艱鉅的任務:找到最小的 m。

輸入格式

輸出格式

樣例資料

input

2 4

3 19 10 6

5 11 29 13 19 17

output

25

樣例說明在第一組資料中,貨幣系統 (2, [3,10]) 和給出的貨幣系統 (n, a) 等價,並可以驗證不存在 m < 2 的等價的貨幣系統,因此答案為 2。 在第二組資料中,可以驗證不存在 m < n的等價的貨幣系統,因此答案為 5。

資料規模與約定

\(\mathrm\)

即:\(b\subseteq a\)。因為我們發現無論加入什麼非a集中數時,都會造成兩者不等價。甚至加入乙個a中某數的因數或者倍數都不行。因數的話會造成可以表示更多數,不等價;倍數同理。

那麼這還不簡單嗎,就是在\(a\)中找可以被其他面額的貨幣拼出來的面額,刪掉就可以了。因為這些面額是多餘的。因為貨幣有無限個,所以它們能拼出來的金額可以被更少的面額所取代,這樣就可以同時保證兩系統等價。最終得到的就是不能刪去的最少要保留的面額。

如果一時想不到揹包,可以直接開乙個桶,然後從乙個沒被標記的小的面額開始放入桶中,並標記所有它的倍數的位置,這樣不停的放,放完就好了。但是這樣你顯然會wa的很徹底,甚至樣例都過不了。

(然而我考試時就著這麼搞得,不過加了一些strange skill,拿的是部分分的特殊資料。大概21分吧。)

這時候就要思考了:什麼樣的方法可以算出所有資料不限選擇個數的累加和呢?我的說法可能不準確,但是顯而易見完全揹包。

題目中沒有給出價值,其實我們也不需要,只需要知道能不能達到就行了。

這麼暴力的演算法竟然複雜度對的,沒有任何卡人的直接過去了,去年t2真的水。

code:

#includeusing namespace std;

#define n 110

int tt, n;

int a[110] = {};

bool vis[n] = {};

int f[25010] = {};

int main()

if(f[a[i]])vis[i] = 1;

}int s = 0;

for(int i = 1; i <= n; ++i)if(!vis[i])++s;

printf("%d\n", s);

}return 0;

}

不說了不說了,沒後記,自己都嫌嘮叨。

從今天開始

從今天開始我第一次開通了我的blog,其實我是個很懶的人,屬於掛個大餅在脖子上都有可能餓死的人 當然可能性不大 我也不是乙個太多愁善感的人,即使是也沒有很好的語言能力去表達,所以我一直沒有使用blog的慾望,另外我更不是乙個時尚的人,或許在將來會,因此在blog尚處與時尚期的時候我沒有想擁有乙個!不...

重寫部落格,從今天開始

今天是週末,晚上和老k 小舞一塊吃飯,嘗了一下青霞的幾個新菜,味道相當不錯,哈哈!吃飯之間聊了很多,主要是老k的3個理論,乙個是支點理論,乙個是臨界點理論,還有乙個是時間理論。蠻有道理的,很有啟發,相信可以作為我們很多做事方法的指導,呵呵。後來說到寫部落格的事情,老k已經堅持寫了一年多,他的確說到做...

從今天開始積累

1.檔名可能很奇怪,比如末尾是?會誤以為是傳參 以hint.php?整體為資料夾名 後面很上相對路徑就會起到迷惑人的作用hint.php?ffffllllaaaagggg 2.tornado模板注入 output twig render hello 將使用者輸入作為模版內容的一部分 效果就像是直接 ...