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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Codeforces 963A Alternating Sum 【数论+数学】

發(fā)布時(shí)間:2025/6/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces 963A Alternating Sum 【数论+数学】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

官方題解這個(gè)樣子我覺(jué)得說(shuō)得比較清楚。Z我們可以樸素的預(yù)處理出來(lái)(注意乘法膜),q的話考點(diǎn)在于【分?jǐn)?shù)取膜】即 (a/b)%P = a* inverse of b %P

這就涉及到算b的逆元,我用的是歐幾里得算法。下面這個(gè)博客寫(xiě)的很清楚。

http://www.cnblogs.com/frog112111/archive/2012/08/19/2646012.html

?

?然后還有兩個(gè)細(xì)節(jié),一是要寫(xiě)快速冪這樣才能 O(k * log(n)) 復(fù)雜度預(yù)處理出Z,快速冪的時(shí)候注意a的類(lèi)型得是long long,因?yàn)閍*a的時(shí)候可能爆int,我就因?yàn)檫@一點(diǎn)WA了好多次。第二個(gè)細(xì)節(jié)是根據(jù)等比數(shù)列求和公式我們要特判一下q=1的情況

1 #include<iostream> 2 #define MAXN 200000 3 #define ll long long 4 #define P 1000000009 5 using namespace std; 6 7 int exgcd(int a,int b,int &x,int &y) 8 { 9 if(b==0) 10 { 11 x=1; 12 y=0; 13 return a; 14 } 15 int r=exgcd(b,a%b,x,y); 16 int t=x; 17 x=y; 18 y=t-a/b*y; 19 return r; 20 } 21 22 ll power(ll a,int n){ 23 if(n==0) return 1; 24 if(n==1) return a; 25 if(n==2) return (a*a)%P; 26 if(n%2) return power(power(a,n/2),2)*a%P; 27 return power(power(a,n/2),2); 28 } 29 30 31 int n,a,b,k,s[MAXN]; 32 int x,y; 33 ll sum; 34 35 int main(){ 36 37 scanf("%d%d%d%d",&n,&a,&b,&k); 38 39 for(int i=0;i<k;i++){ 40 char sym; cin>>sym; 41 if(sym=='+') s[i]=1; 42 else s[i]=-1; 43 } 44 45 for(int i=0;i<k;i++){//Z 46 if(s[i]==1) sum=(sum+power(a,n-i)*power(b,i)%P)%P; 47 else sum=(sum-power(a,n-i)*power(b,i)%P+P)%P; 48 } 49 50 exgcd(a,P,x,y);//找a的逆元 51 int inva=x; 52 inva+=P; inva%=P; 53 ll q = power(b,k)*power(inva,k)%P; 54 55 if(q==1){ 56 cout<<sum*((n+1)/k)%P; 57 } 58 else{ 59 x=0; y=0; 60 exgcd(q-1,P,x,y); x+=P; x%=P; 61 printf("%d",sum*x%P*( power(q,(n+1)/k) -1 )%P ); 62 } 63 64 return 0; 65 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/ZhenghangHu/p/8973537.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Codeforces 963A Alternating Sum 【数论+数学】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。