剩餘定理及其應用(杭電1061)

2021-06-23 02:55:20 字數 1120 閱讀 3724

例題:

題目:rightmost digit

題意:給乙個正整數n,輸出n^n的最右邊的數!1<=n<=1000,000,000

解題思路:

本題的思路,很簡單,只需計算在每次得到的乘積的對10的餘數即可,但是同時會遇到另乙個問題,效率太低,原因是計算次數太多,而大多數的計算對結果的沒有影響,所以應該尋找另一種方法去解決它,由於n^n的冪太高,所以我們可以進行降冪處理,在此過程中還應用求餘的相關知識,最終才能得到正確的結果。

涉及知識:

(a*b)%10=(a%10)*(b%10)%10

(a+b)%10=((a%10)+(b%10))%10

對於減法同樣適用,但對於除法就要另作討論了!

難點:一開始,看到這樣的題時就想到,如果按照一般的演算法計算肯定會超時,所以必須要在計算過程中對資料進行處理,以此減少運算的次數,但怎麼處理,在當時來說就是難點了,一直找不到有效的解決辦法,後來在網上查詢知道,對於這樣的運算,需要進行降冪處理,同時結合一些求餘知識,可以高效的計算出結果!

降冪的實現,可以運用遞迴**如下:

int solve(int n,int m)

關鍵點:

1、降冪

2、取模

剩餘定理:

poset Dilworth定理及其應用

引用三篇比較好的文章,是對鏈,反鏈,偏序集,dilworth的講解和證明 ttang 神牛的筆記,axl牛,lambda2fei牛 推薦四個可以用此方法做出的習題 對於邊界問題,需要帶數試一試 hdu 1257 include include include include includeusing...

尤拉定理及其應用

euler定理 對於正整數a,p,若 a,p 1,有a p mod p 1,其中尤拉函式 p p 1 1 p 1 1 1 p 2 1 1 p k p 1,p 2,p k是p的所有的素數因子.當p是乙個素數時,它的特例如下 fermat 小定理 如果p是素數,a,p 1,則a p 1 mod p 1....

杭電2092 利用韋達定理解決

problem description 有二個整數,它們加起來等於某個整數,乘起來又等於另乙個整數,它們到底是真還是假,也就是這種整數到底存不存在,實在有點吃不準,你能快速回答嗎?看來只能通過程式設計。例如 x y 9,x y 15 找不到這樣的整數x和y 1 4 5,1 4 4,所以,加起來等於5...