給下n,m,k.求
輸入有多組資料,輸入資料的第一行兩個正整數t,k,代表有t組資料,k的意義如上所示,下面第二行到第t+1行,每行為兩個正整數n,m,其意義如上式所示。
如題1 2
3 3
201<=n,m,k<=5000000,1<=t<=2000
題解:如何快速推出線性篩的遞推式呢?——打表。
發現f(d)長得跟$\varphi(d)$差不多?所以遞推式也差不多
$f(i*pj)=\begin& f(i)*(pj^k-1) & i\%pj!=0 \\ & f(i)*pj^k & i\%pj==0\end$
#include #include #include using namespace std;typedef long long ll;
const ll mod=1000000007;
const int n=5000000;
int t,k,num;
int pri[n];
ll f[n+10],sf[n+10],pk[n],ans;
bool np[n+10];
ll pm(ll x,ll y)
return z;
}void init()
f[i*pri[j]]=f[i]*(pk[j]-1)%mod;
} }}void work()
printf("%lld\n",(ans+mod)%mod);
}int main()
bzoj 4407 於神之怒加強版
time limit 80 sec memory limit 512 mb submit 624 solved 297 submit status discuss 給下n,m,k.求 輸入有多組資料,輸入資料的第一行兩個正整數t,k,代表有t組資料,k的意義如上所示,下面第二行到第t 1行,每行為兩...
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,那麼有 哎這個式子看起來很和善 後面那個好像是積性函式 逃 那麼線性篩就行啦!問題是怎麼篩呢。...