JZOJ5962 NOIP2018 貨幣系統

2021-09-01 09:25:28 字數 1320 閱讀 5279

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