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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

寒假集训【1.26】

發布時間:2024/8/26 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 寒假集训【1.26】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1月26

時間段

記錄

備注

8:00---8:30

?

?

?

?請假

?

?

?

?

8:30---9:00

?

9:00----9:30

?

9:30---10:00

?

10:00—10:30

?

10:30---11:00

?

11:00---11:30

?

11:30---13:30

午休?

?

13:30---14:00

看書+3道小例題

?

14:00—14:30

?

14:30—15:00

?

15:00—15:30

費解的開關

?

15:30---16:00

?

16:00---16:30

?

16:30---17:00

漢諾塔問題

?

17:00---18:30

?

?

18:30—21:30

漢諾塔問題

?

Sumdiv(分治)

?

?

整理今日

?

?

分享交流:

?

(待書寫)

?

附:可以貼各種資料或題解

費解的開關

若固定了第一行,則若改變第i行某位數字,若i-1行已經固定,則只能點擊i+1行的該位置上的數字才可以。

遞歸妙!!!!真的妙。

?

漢諾塔問題

1、漢諾塔三塔問題?d[n]=2*d[n-1]+1

2、漢諾塔四塔問題?f[n]=min{x*f[i]+d[n-i]}

3、漢諾塔m盤n塔問題。f[i][j]=minf[k][j]?2+f[i?k][j?1]。設f[i][j]為有i個盤子j個柱子時的最少步數.?那么肯定是把一些上面盤子移動到某根不是j的柱子上,?然后把剩下的盤子移動到j,?然后再把上面的盤子移動到j.?于是就有遞推式f[i][j]=min{f[k][j]?2+f[i?k][j?1],f[i][j]}

?

Sumdiv

求A^B的所有約數之和mod 9901

?

?

1、(看到滿串公式就腦殼疼)理解不了為啥用乘法分配律就可以從約數集合得到那個式子,后來在onglu大佬的幫助之下成功理解(在線%神仙)。

2、后面那個分治法求sum真的是妙啊,等比數列這么一提,妙,真的妙。經過二分再配合快速冪,時間復雜度瞬間下降(書上是O(logc),然鵝我不會算(霧,妙啊)。

3、然后我就卡死在實現上了qaq。

4、分解質因數竟然不會寫了,素數篩也忘了(我可能是個廢人)晚上重學素數篩。

5、想得腦殼疼。最終在某位大佬的某篇博客的幫助下,寫出來了(不容易啊qaq)

6、數學真妙啊!

?

我jio的很有必要貼一下我的AC代碼

#include<bits/stdc++.h> using namespace std; const int maxn=5000+3; const int mod=9901; inline int read(){int s=0,w=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();} while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar(); return s*w; } int A,B,cnt,prime[maxn]; long long factor[100][2];//0存因子,1存次方. void getprime( );//素數篩 int getfactors(long long x);//分解質因數 long long ksm(long long a,long long b);//快速冪 long long sum(long long p,long long n);//核心公式 int main(){ int A,B; A=read(); B=read(); getprime(); long long ans=1; getfactors(A); for(int i=0;i<cnt;i++){ ans*=(sum(factor[i][0],B*factor[i][1])%mod); ans%=mod; } printf("%d",ans); return 0; } void getprime( ){ memset(prime,0,sizeof(prime)); for(int i=2;i<=maxn;i++){ if(!prime[i]) prime[++prime[0]]=i; for(int j=1;j<=prime[0]&&prime[j]<maxn/i;j++){ prime[prime[j]*i]=1; if(i%prime[j]==0) break; } } } int getfactors(long long x){ cnt=0; long long tmp=x; for(int i=1;prime[i]<=tmp/prime[i];i++){ factor[cnt][1]=0; if(tmp%prime[i]==0){ factor[cnt][0]=prime[i]; while(tmp%prime[i]==0){ factor[cnt][1]++; tmp/=prime[i]; } cnt++; } } if(tmp!=1){ factor[cnt][0]=tmp; factor[cnt++][1]=1; } return cnt; } long long ksm(long long a,long long b){ long long res=1; long long tmp=a%mod; while(b){ if(b&1){ res*=tmp; res%=mod; } b>>=1; tmp*=tmp; tmp%=mod; } return res; } long long sum(long long p,long long n){ if(p==0)return 0; if(n==0)return 1; if(n&1){ return((1+ksm(p,n/2+1))%mod*sum(p,n/2)%mod)%mod; } else return((1+ksm(p,n/2+1))%mod*sum(p,n/2-1)+ksm(p,n/2)%mod)%mod; }

?

轉載于:https://www.cnblogs.com/Shayndel/p/10330204.html

總結

以上是生活随笔為你收集整理的寒假集训【1.26】的全部內容,希望文章能夠幫你解決所遇到的問題。

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