題目傳送門
好像這題並不是組合數學啊……只是乙個套公式的題目罷了。
乙個正整數
n 有素因子分解=p
a11∗
pa22
∗…∗p
amm,則有以下兩個定理:1.n
的因子和
=pa1
+11−
1p1−
1∗pa
2+12
−1p2
−1∗…
∗pam
+1m−
1pm−
1=∏i
=1mp
ai+1
i−1p
i−1
2.n的因
子個數=
(a1+
1)∗(
a2+1
)∗…∗
(am+
1)=∏
i=1m
(ai+
1)然後這題就變成了直接套第一條定理的水題,直接對於每個素因子快速冪求貢獻即可。
然而這題給出的模數9901是乙個質數,可能被給出的
n 包含,需要特判一下。
p.s.這題在poj上也有,題目要為1845,只是因為poj最近在維護所以不能交就去洛谷了。
附上ac**:
#include
using namespace std;
typedef long long ll;
const int mod=9901;
ll a,b,c,ans;
inline ll ksm(ll x,ll y)
return sum;
}int main(void)
if (a>1&&a!=9901) ans=ans*(ksm(a,b+1)-1)%mod
*ksm(a-1,mod-2)%mod;
printf("%lld",ans);
return
0;}
組合數學 洛谷
p1287盒子與球 題意 現有 r 個互不相同的盒子和 n 個互不相同的球,要將這 n 個球放入r 個盒子中,且不允許有空盒子。請求出有多少種不同的放法。資料範圍 對於 100 的資料,保證 0 r n 10,且答案小於 2 31.分析 n個球,從中取出乙個球,有倆種放法,1 bi獨佔乙個盒子,那麼...
洛谷 因子和
題目傳送 題意 思路 肯定是唯一分解,然後就是自己推公式了 公式 那麼這個怎麼快速的求得呢?我們看到,這是個等比數列求和的乘積 等比數列求和的公式是 n為第n項,我們可以利用逆元來快速求解 但是現在還有乙個問題每當逆元不存在的時候,怎麼辦?也就是說當p 1是 模數的倍數的時候,怎麼求呢?首先有公式 ...
洛谷 P1037 floyd 組合數學 高精度
給出乙個整數n n 1030 n n 10 n n 1030 和k k k個變換規則 k 15 k le 15 k 15 規則 一位數可變換成另乙個一位數 規則的右部不能為零。例如 n 234n 234n 234。有規則 k 2 2 5 3 6 上面的整數234經過變換後可能產生出的整數為 包括原數...