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的。...