bzoj 4407 於神之怒加強版

2021-08-01 01:44:59 字數 1335 閱讀 9538



time limit: 80 sec  

memory limit: 512 mb

submit: 624  

solved: 297 [

submit][

status][

discuss]

給下n,m,k.求

輸入有多組資料,輸入資料的第一行兩個正整數t,k,代表有t組資料,k的意義如上所示,下面第二行到第t+1行,每行為兩個正整數n,m,其意義如上式所示。 如題

1 23 3

201<=n,m,k<=5000000,1<=t<=2000

題解:judgeonline/upload/201603/4407.rar

命題人:成都七中張耀楠,鳴謝excited上傳。

【分析】

好像找到一點門道...

就差一步啊尼瑪尼瑪尼瑪

設出來t=pd,一化簡,得出結論:不可做,遂看題解。= =結果發現題解果然是這樣...

哪位可愛的題解還說用o(nlogn)的預處理可以過...為毛我t飛了(可能自帶大常數)

唉你們開心就好

【**】

//bzoj 4407 於神之怒加強版

#include#include#include#define n 5000000

#define p 1000000007

#define ll long long

#define m(a) memset(a,0,sizeof a)

#define fo(i,j,k) for(int i=j;i<=k;i++)

using namespace std;

const int mxn=5000005;

int n,m,k,t;

bool vis[mxn];

int pri[mxn];

ll g[mxn],pw[mxn];

inline int read()

while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();

return x*f;

}inline ll calc(ll x,int k)

return ans%p;

}inline void init()

g[i*pri[j]]=g[i]*g[pri[j]]%p;

} }fo(i,2,n) g[i]=(g[i]+g[i-1])%p;

}inline ll solve(int n,int m)

return (ans+p)%p;

}int main()

return 0;

}

bzoj 4407 於神之怒加強版

給下n,m,k.求 輸入有多組資料,輸入資料的第一行兩個正整數t,k,代表有t組資料,k的意義如上所示,下面第二行到第t 1行,每行為兩個正整數n,m,其意義如上式所示。如題1 2 3 3 20感覺是道比較水的數論題?提個d k隨手莫比烏斯反演一下,再把 跟d k放在一起,預處理出來就好了。瑪雅,1...

bzoj4407 於神之怒加強版

傳送門 題解 推一波公式 你還是需要前置技能 那麼好像可以o tnlogn 直接暴力啊!當然是兩遍根號分塊變成o tn 啊 好訊息過不去。當你莫比烏斯反演發現複雜度不對的話怎麼辦?繼續瞎 化簡!令x pd,那麼有 哎這個式子看起來很和善 後面那個好像是積性函式 逃 那麼線性篩就行啦!問題是怎麼篩呢。...

bzoj4407 於神之怒加強版

懵逼烏斯反演裸題 畫完柿子只要預處理s i sigema d i d u i d d k 線性篩它一手 i prime j 0,我們換種表示方法,設i x p q,對於s i 有貢獻的d,只能具有q或q 1個p,而對於i prime j 也就是x p q 1 來說,有貢獻的d是具有q 1或q個p的。...