在網友的國度中共有 \(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\)。
輸入檔案的第一行包含乙個整數 \(t\),表示資料的組數。
接下來按照如下格式分別給出 \(t\) 組資料。
每組資料的第一行包含乙個正整數 \(n\)。
接下來一行包含 n 個由空格隔開的正整數 a[i]。
輸出檔案共有 \(t\) 行,對於每組資料,輸出一行乙個正整數,表示所有與 \((n,a)\) 等價的貨幣系統 \((m,b)\) 中,最小的 \(m\)。
資料範圍
\(1≤n≤100,\)
\(1≤a[i]≤25000,\)
\(1≤t≤20\)
輸入樣例:
2
4 3 19 10 6
5 11 29 13 19 17
輸出樣例:2
5
數學即求解最大線性無關組,對於最後選的面額\(b_1,b_2,\dots,b_m\),且其中沒有多餘的數,即任何乙個 \(b_i\),不能由其他數係數非負表示出來,而且其一定可以表示 \(a_1,a_2,\dots,a_n\) 中的任何乙個數,反之亦然,假設 \(b_i\notin a_1,a_2,\dots,a_n\),則由題意 \(b_i=t_1\times b_i1+t_2\times b_i2+\dots +t_k\times b_ik\),其中 \(t_i\) 為正整數,則 \(b_i\) 是多餘的,矛盾,故 \(b\) 序列是從 \(a\) 序列中選出來的,另外由於大數往往是從小數中組合出來的,所以先排序再篩那些可表示的數
設最大面額為 \(m\),則:
// problem: 貨幣系統
// contest: acwing
// url:
// memory limit: 128 mb
// time limit: 1000 ms
// // powered by cp editor (
// %%%skyqwq
#include //#define int long long
#define help
#define pb push_back
#define fi first
#define se second
#define mkp make_pair
using namespace std;
typedef long long ll;
typedef pairpii;
typedef pairpll;
template bool chkmax(t &x, t y)
template bool chkmin(t &x, t y)
template void inline read(t &x)
while (s <= '9' && s >= '0') x = x * 10 + (s ^ 48), s = getchar();
x *= f;
}const int n=25005;
int n,a[105],t;
bool f[n];
int main()
cout<}
return 0;
}
532 貨幣系統
532.貨幣系統 有 n 種不同面額的貨幣,第 i 種貨幣的面額為 a i 每一種貨幣都有無窮多張,貨幣之間可以彼此代替,比如6等於兩張3,問有多少種貨幣是不可替代的 我們換乙個問題i n種貨幣,數量不限,價值為a i 問能表示多少種貨幣?經典揹包問題 我們先求出每乙個價錢能被表示幾次,如果只能被表...
貨幣系統問題
時間限制 1 sec 記憶體限制 64 mb 提交 85 解決 59 提交 狀態 討論版 命題人 admin 貨幣是在國家或經濟體內的物資與服務交換中充當等價物,或是償還債務的特殊商品,是用作交易媒介 儲藏價值和記賬單位的一種工具。魔法世界的貨幣的歷史,可以追溯至史前以物易物的階段,後來經過金屬貨幣...
1192 貨幣系統
給你乙個n種面值的貨幣系統,求組成面值為m的貨幣有多少種方案。樣例 設n 3,m 10,要求輸入和輸出的格式如下 第一行兩個整數n,m m 5000 以下n行,每行乙個整數,第i 1行為第i種貨幣的面值 乙個整數,為方案數 3 1012 510動態規劃 揹包問題 n,m map int,input ...