解題報告 CF622F

2022-04-30 01:48:09 字數 1106 閱讀 6704

懶得碼字了:

很簡單的數論題,紫題顯然是過了些,(不要說...

對於這個式子,是乙個\(k+1\)次的多項式,插\(k+2\)次值就好了,煩人的是處理逆元,我的費馬小定理顯然是\(o(logp)\)的,可以用拓歐,聽說還有\(o(k)\)的演算法,我似乎感覺不太可能(我太弱了)。

預處理處階乘,前、字尾積陣列即可,複雜度\(o(klogk+klogp)\),可以通過此題(跑得飛快.jpg)。

upd:通過線性逆元可以做到 \(\mathcal o(k)\)。

#include#include#define mod 1000000007 

using namespace std;

long long n,k;

long long fac[1000005],y[1000005];

long long pre[1000005],suf[1000005];

long long ans=0;

long long quickpow(long long a,long long b)

return ans%mod;

}inline int judge(long long x)

int main()

if(n<=k+2)

fac[0]=1,y[0]=0;

pre[0]=1,suf[k+3]=1;

for(int i=1;i<=k+1;i++) fac[i]=1ll*fac[i-1]*i%mod;

for(int i=1;i<=k+2;i++) y[i]=(y[i-1]+quickpow(i,k))%mod;

for(int i=1;i<=k+1;i++) pre[i]=1ll*pre[i-1]*(n-i)%mod;

for(int i=k+2;i>1;i--) suf[i]=1ll*suf[i+1]*(n-i)%mod;

for(int i=1;i<=k+2;i++)

printf("%lld\n",ans%mod);

return 0;

}

沒開\(long long\)爆掉了

(我還知道\(o(k^3)\)的做法呢)————差分法,可以拿部分分,比正解還高深\(qwq\)。

CF622F 自然數冪和模板 拉格朗日插值

求 displaystyle sum n i k mod 1e9 7 n leq 10 9,k leq 10 6 cf622f 易知答案是乙個 k 1 次多項式,我們找 k 2 個值代進去,然後拉格朗日插值。n 1 組點值對 x i,y i 得到 n 次多項式 f 的拉格朗日插值公式為 f x su...

CF328解題報告

a題 iq test 很水的題,就是給出數列的前四項,判斷出是等比還是等差。求下一項。code include using namespace std int main else cout 42 endl return 0 b題 sheldon and ice pieces 題意 有一排卡片,每張卡...

0712CF解題報告

a.free cash 題目大意,輸入第一行輸入n,然後輸入n行,每行輸入兩個數h 和 m 要求把出現次數最多的h和m的次數輸出。思路 此題運用雜湊法,先令乙個數tmp h 100 m 然後建立乙個陣列vis 2505 因為h 24 m 60 所以tmp 2505 最後用vis tmp 來統計次數,...