2023年2月28日訓練日記

2021-08-15 22:09:55 字數 887 閱讀 9223

繼續過題:

置換群篇:

old sorting:問乙個置換變為公升序最少用幾次,用到了置換群的乙個結論,就是讓乙個含有cnt個元素的迴圈節要想變成公升序最少需要cnt-1次,然後dfs搜迴圈節就行了。

費馬小定理篇(一直都只是知道這個定理,也曾經用過,一看部落格才發現並不是個不常用的定理,處處有優化啊):

sum:費馬小定理比較基礎的應用,求2^n-1,由於n很大,結果又需要對1e9+7取餘,因此想到用費馬小定理,也就是2^(nmod(1e9+6))。這裡**中感覺對大數取餘這塊寫的比較簡,於是拓下來:

intlen = strlen(str);  

n = 0;  

for(

inti = 0; i < len; i++)  

n = (n * 10 + str[i] - '0'

) % (mod-1)

m斐波那契數列:乙個特殊的斐波那契數列,f0=a,f1=b,fn=fn-1*fn-2,經過推倒之後發現正好是fn=a^fn-2*b^fn-1,這裡f為正版斐波那契數列,這裡要對1e9+7取餘,由於n很大,因此需要用到矩陣快速冪,又因為結果很大,需要做指數,因此用到費馬小定理,在矩陣快速冪的時候對1e9+6取餘。

remoteland:結論:最大的完全平方數a = n! / (res),其中res=[1, n]中所有指數為奇數的質數乘積。為何?因為指數為奇數的話乘一塊就不能構成完全平方數了,然後就是快速求階乘中指數的方法:

intnum(

intn, 

intp)  

return

sum;  

} 然後用到了費馬小定理求逆元/res%mod=*res^(mod-2),這裡mod和res要互質。

turn the pokers:組合數加逆元,有點類似於省賽時候遇到的那個題目。

2023年9月2日訓練日記

這段時間複習了數字dp的有關內容。之前做過的比較難的題目有一些看不懂了。簡單的題目還是可以看懂的。主要是dp的每一維表示什麼,是否有前導零等條件。經常結合二分使用,求第k個每一數字滿足什麼條件的數這樣的。不過還是只會dfs寫法,普通的for迴圈dp還是只能看懂一小部分。icpc南京網路賽可以說打的不...

2023年6月28日訓練日記

這幾天主要還是打了cf的比賽。說好聽的是上分,說不好聽的就是刷水題練手速。最近也沒怎麼寫題解了。去翻了翻饒齊的部落格,發現我之前還真的沒有看過他的線段樹專題。週末可以看一下。昨晚cf的比賽又上分了 3題,rank500 rating 50 美滋滋。還得謝大佬 目前共13場rating1680 藍名,...

2023年4月10日訓練日記

周一打了手速練習賽,裡面有三個沒做過的,他們好像都做過,我就廢了點時間,但是已經飛快了,感覺讀題是快了不少,但是畢竟還是短題,長一點就有厭倦感。ak了之後看了一會莫隊的演算法,好像這個演算法只是一種思想,非常巧妙的運用了離線演算法通過指標跳區間找關係,但是還沒完全看懂。周二晚上逃了節課看了一些線段樹...