532 貨幣系統

2022-10-02 10:09:09 字數 2211 閱讀 5788

在網友的國度中共有 \(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 ...