去年參加了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 將使用者輸入作為模版內容的一部分 效果就像是直接 ...