日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

守护白起

發布時間:2024/1/8 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 守护白起 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近古yu迷上了《戀與制作人》,天天嚷嚷著白起我老公(死gay死gay的),白起又向古yu提出了一個問題:
給你n種卡牌(數量無限),將其擺成長度為m的圓環的方案數。
(如果這個環可以通過若干次旋轉或者反方向讀((abc)(cba)是一樣的),則認為他們是一樣的)
這時古yu一臉茫然,大哭特苦不能守護白起了。古yu希望你能幫助他解決這個問題去守護白起。
輸入描述:
第一行一個t(0<t<=500)
接下來t行,每行倆個正整數n,m(1<=n,m<=10000)

輸出描述:
一個答案加換行(答案可能很大,所以取模1000000007)
示例1
輸入
2
3 4
1 2
輸出
21
1
說明

對于第一個樣例有21種不同的方法 / aaaa / aaab / aaac / aabb / aabc / aacc / abab / / abac / abbb / abbc / abcb / abcc / acac / acbc / / accc / bbbb / bbbc / bbcc / bcbc / bccc / cccc #include <bits/stdc++.h> #define mod 1000000007 using namespace std; int phi[10005]; bool isp[10005]; int pri[10005],cnt=0; inline void getp() {phi[1]=1;for (int i=2;i<=10000;i++){if (!isp[i]) {pri[++cnt]=i;phi[i]=i-1;}for (int j=1;i*pri[j]<=10000&&j<=cnt;j++){isp[i*pri[j]]=1;phi[i*pri[j]]=phi[i]*(pri[j]-1);if (i%pri[j]==0) {phi[i*pri[j]]=phi[i]*pri[j];break;}}} } inline int qpow(int a,int b) {int res=1,tp=a;while (b){if (b&1) res=1ll*res*tp%mod;tp=1ll*tp*tp%mod;b>>=1;}return res; } int main() {getp();int test,n,m;scanf ("%d",&test);while (test--){scanf ("%d%d",&m,&n);int ans=0;for (int i=1;i*i<=n;i++){if (n%i==0){ans+=1ll*phi[n/i]*qpow(m,i)%mod;if (ans>=mod) ans-=mod;if (i*i!=n){ans+=1ll*phi[i]*qpow(m,n/i)%mod;if (ans>=mod) ans-=mod;}}}if (n&1) {ans+=1ll*n*qpow(m,n/2+1)%mod;}else {ans+=1ll*(n/2)*(qpow(m,n/2)+qpow(m,n/2+1))%mod;}ans=1ll*ans*qpow(2*n,mod-2)%mod;printf ("%d\n",ans);}return 0; }

總結

以上是生活随笔為你收集整理的守护白起的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。