UVa10375(唯一分解定理)

2021-08-09 21:10:54 字數 594 閱讀 1420

例題10-3 選擇與除法(choose and divide, uva10375)

已知c(m,n) = m!/(n!(m-n)!),輸入整數p, q, r, s(p≥q,r≥s,p,q,r,s≤10000),計 算c(p,q)/c(r,s)。輸出保證不超過108,保留5位小數。

【分析】

本題正是唯一分解定理的用武之地。組合數c(m,n)的性質將在10.2.1節中介紹,本題只 需要用到它的定義。

首先,求出10000以內的所有素數primes,然後用陣列e表示當前結果的唯一分解式中各 個素數的指數。例如,e=表示2^1*5^2=50。

唯一分解:任何乙個大於1的數n,可分解為若干素數相乘的形式。

以上摘自劉汝佳前輩紫書。

【**】:

#includeusing namespace std;

int pri[15100],top,t[15100];

bool vis[15100];

void prime()

}void get(int n,int flag)//將n的階乘唯一分解,存入t

}}int main()

}

uva 10375 唯一分解定理

已知c m,n m n m n 輸入整數p,q,r,s p q,r s,p,q,r,s 10000 計算c p,q c r,s 輸出保證不超過10 8,保留5位小數 根據唯一分解定理,n 可以分解為若干個質數相乘。模擬分解這個式子 include using namespace std define...

UVA 10375 唯一分解定理

題意 求c m,n c r,s 思路 先對素數打表,構造階乘的素數,設定乙個e陣列用來儲存素數對應序號i的個數,階乘作為分子是 1,作為分母是 1,最後計算的時候直接ans pow 素數,對應的個數 即可 includeusing namespace std define inf 0x3f3f3f3...

uva10375 選擇與除法 唯一分解定理

對數進行分解方便有效的約分。唯一分解定理 乙個數總是有素數的乘積構成。include include include include include using namespace std const int maxn 10000 vector primes int e maxn 乘以或除以n.d ...