在網友的國度中共有 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。
#pragma gcc optimize("o3")
#pragma g++ optimize("o3")
#include
#include
#include
#define maxn 105
#define maxnum 25000
#define reg register int
#define fo(i,a,b) for (reg i=a;i<=b;++i)
#define fd(i,a,b) for (reg i=a;i>=b;--i)
#define o3 __attribute__((optimize("-o3")))
using
namespace std;
int a[maxn]
;bool bz[maxnum+5]
;int n,t,ans;
o3 inline
intread()
while
('0'
<=ch && ch<=
'9')x=x*
10+ch-
'0',ch=
getchar()
;return x*f;
}o3 int
main()
fo(i,
1,n)
fo(j,
1,n)
if(a[i]
-a[j]
>=
0&& bz[a[i]
-a[j]])
printf
("%d\n"
,ans);}
return0;
}
2014 9 8 noip201x模擬賽總結與展望
因為本星期學校組織考試,所以到現在才能抽出時間寫寫總結。300分滿分,得了200,q1 q3a了,q2爆了零分,下面一題題的總結吧。q1 最裸的貪心,因為心理原因還有點不敢寫,抱著爆零的心態寫了,沒想到a掉了。主要就是需要把rp從小到大排序,好像有同學就因為不排序而丟分了。很簡單,過了。q2 這道題...
NOIP 數學 JZOJ 3027 計算係數
給出a,b k,n m a,b,k,n,m,a,b,k,n,m,求出 ax by k ax by k ax by k,請求出多項式展開後xny mx ny m xnym 項的係數 10007 10007 10007 可以手算推幾個發現 每個係數按指數n nn遞減再遞增就可以發現是楊輝三角的某一層,然...
jzoj3424 NOIP2013模擬 粉刷匠
description input 第一行乙個正整數t,表示測試資料組數 對於每一組測試資料資料 第1行 乙個正整數k 第2行 k個正整數,表示第i桶油漆可以粉刷的石柱個數,ci。output 對於每組輸入資料,輸出一行乙個整數,表示粉刷的方案數mod 1000000007。sample input...