ACM數學

  1. 從放暑假前周sir給我講了一個用polya計數法和burnside定理作的題目(pku2409)後,忽然以爲組合數學挺有意思,而後從那時起到如今幾乎都在作這類的題目。  
  2. 作到如今感受這類題目的一些基本知識點都差很少有所瞭解了,水題也刷了很多,但還有不少難題本身實在是作不動,因此準備把這類題目先放一放,而後把前段時間作的水題整理一下(供之後的初學者參考,大牛就不要看了哈,都是水題)。剩下的比較難的題目就慢慢來吧,之後作出來再不上,這個小結會不斷地更新。也但願你們有好的題目能夠推薦一下,分享一下哈。  
  3.      感謝:周sir,J_factory和福州大學神牛aekdycoin,大連理工大學神牛czyuan。  
  4. 不扯了,進入主題:  
  5.     1.burnside定理,polya計數法  
  6. 這個專題我單獨寫了個小結,你們能夠簡單參考一下:polya 計數法,burnside定理小結  
  7.     2.置換,置換的運算  
  8.     置換的概念仍是比較好理解的,《組合數學》裏面有講。對於置換的冪運算你們能夠參考一下潘震皓的那篇《置換羣快速冪運算研究與探討》,寫的很好。  
  9. *簡單題:(應該理解概念就能夠了)  
  10. pku3270 Cow Sorting   
  11. http://acm.pku.edu.cn/JudgeOnline/problem?id=3270  
  12.     pku1026 Cipher  
  13. http://acm.pku.edu.cn/JudgeOnline/problem?id=1026  
  14.     *置換冪運算:  
  15. pku1721 CARDS  
  16. http://162.105.81.212/JudgeOnline/problem?id=1721  
  17.     pku3128 Leonardo's Notebook  
  18. http://162.105.81.212/JudgeOnline/problem?id=3128  
  19.     *推薦:(不錯的應用)  
  20. pku3590 The shuffle Problem  
  21. http://162.105.81.212/JudgeOnline/problem?id=3590  
  22.     3.素數,整數分解,歐拉函數  
  23. 素數是可能數論裏最永恆,最經典的問題了(咱們的隊名就叫PrimeMusic^-^)。素數的判斷,篩法求素數,大素數的判斷···還有不少其餘問題都會用到素數。  
  24. *最水最水的:(心情不爽時用來解悶吧)  
  25. pku1365 Prime Land  
  26. pku2034 Anti-prime Sequences  
  27. pku2739 Sum of Consecutive Prime Numbers  
  28. pku3518 Prime Gap  
  29. pku3126 Prime Path  
  30. pku1595 Prime Cuts  
  31. pku3641 Pseudoprime numbers  
  32. pku2191 Mersenne Composite Numbers  
  33. pku1730 Perfect Pth Powers  
  34. pku2262 Goldbach's Conjecture  
  35. pku2909 Goldbach's Conjecture  
  36. *篩法:  
  37. pku2689 Prime Distance(很好的一個應用)  
  38. http://162.105.81.212/JudgeOnline/problem?id=2689  
  39.     *反素數:  
  40. zoj2562 More Divisors  
  41. http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2562  
  42.     *素數判斷,整數分解:  
  43. 這兩題都要用到miller_rabin的素數判斷和pollard_rho的整數分解,算法書上都會有,應該是屬於模板題吧,不過最好看懂本身敲一遍。  
  44. pku1811 Prime Test  
  45. http://acm.pku.edu.cn/JudgeOnline/problem?id=1811  
  46.     pku2429 GCD & LCM Inverse  
  47. http://acm.pku.edu.cn/JudgeOnline/problem?id=2429  
  48.     *歐拉函數:  
  49. 數論裏不少地方都能用到歐拉函數,很重要的。  
  50. pku1284 Primitive Roots (很水)  
  51. http://acm.pku.edu.cn/JudgeOnline/problem?id=1284  
  52.     pku2407 Relatives (很水)  
  53. http://acm.pku.edu.cn/JudgeOnline/problem?id=2407  
  54.     pku2773 Happy 2006  
  55. http://162.105.81.212/JudgeOnline/problem?id=2773  
  56.     pku2478 Farey Sequence (快速求歐拉函數)  
  57. http://162.105.81.212/JudgeOnline/problem?id=2478  
  58.     pku3090 Visible Lattice Points (法雷級數)  
  59. http://acm.pku.edu.cn/JudgeOnline/problem?id=3090  
  60.     *推薦:(歐拉函數,費馬小定理)  
  61. pku3358 Period of an Infinite Binary Expansion  
  62. http://acm.pku.edu.cn/JudgeOnline/problem?id=3358  
  63.     *整數分解  
  64. 這個也很重要的耶,包括大數的表示方法。  
  65. pku2992 Divisors  
  66. http://acm.pku.edu.cn/JudgeOnline/problem?id=2992  
  67.     fzu1753 Another Easy Problem   
  68. http://acm.fzu.edu.cn/problem.php?pid=1753  
  69.     hit2813 Garden visiting  
  70. http://acm-hit.sunner.cn/judge/show.php?Proid=2813  
  71.     pku3101 Astronomy (分數的最小公倍數)  
  72. http://acm.pku.edu.cn/JudgeOnline/problem?id=3101  
  73.     4.擴展歐幾里得,線性同餘,中國剩餘定理  
  74.     這應該是數論裏比較重要的一個部分吧,這類的題目也挺多,具體的內容最好先看看數論書,我也整理過一些,能夠參考參考:  
  75. http://hi.baidu.com/%B1%BF%D0%A1%BA%A2%5Fshw/blog/item/0676025d56a87d4afbf2c093.html  
  76.     *簡單題:  
  77. pku1006 Biorhythms  
  78. http://acm.pku.edu.cn/JudgeOnline/problem?id=1006  
  79.     pku1061 青蛙的約會  
  80. http://acm.pku.edu.cn/JudgeOnline/problem?id=1061  
  81.     pku2891 Strange Way to Express Integers  
  82. http://acm.pku.edu.cn/JudgeOnline/problem?id=2891  
  83.     pku2115 C Looooops  
  84. http://acm.pku.edu.cn/JudgeOnline/problem?id=2115  
  85.     pku2142 The Balance  
  86. http://162.105.81.212/JudgeOnline/problem?id=2142  
  87.     *強烈推薦:  
  88. sgu106 The equation   
  89. http://acm.sgu.ru/problem.php?contest=0&problem=106  
  90.     pku3708 Recurrent Function (經典)  
  91. http://acm.pku.edu.cn/JudgeOnline/problem?id=3708  
  92.     5.約瑟夫環問題  
  93. 這個問題仍是比較有意思的,不是很難。  
  94. *簡單題:  
  95. pku3517 And Then There Was One  
  96. http://acm.pku.edu.cn/JudgeOnline/problem?id=3517  
  97.     pku1781 In Danger  
  98. http://acm.pku.edu.cn/JudgeOnline/problem?id=1781  
  99.     pku1012 Joseph  
  100. http://162.105.81.212/JudgeOnline/problem?id=1012  
  101.     pku2244 Eeny Meeny Moo  
  102. http://162.105.81.212/JudgeOnline/problem?id=2244  
  103.     *推薦:  
  104. pku2886 Who Gets the Most Candies?  
  105. http://162.105.81.212/JudgeOnline/problem?id=2886  
  106.     6.高斯消元法解方程  
  107. 其實解方程並非很難,就是按線性代數中學的那種方法,把係數矩陣化成上三角矩陣或數量矩陣,不過有些題目要判斷是否有解,或枚舉全部解。不過這類題目我認爲比較難的仍是怎麼去創建這個方程組,這個理解了,就沒什麼大問題了。  
  108. *簡單題:  
  109. pku1222 EXTENDED LIGHTS OUT  
  110. http://162.105.81.212/JudgeOnline/problem?id=1222  
  111.     pku1681 Painter's Problem  
  112. http://162.105.81.212/JudgeOnline/problem?id=1681  
  113.     pku1830 開關問題  
  114. http://162.105.81.212/JudgeOnline/problem?id=1830  
  115.     *推薦:  
  116. pku2947 Widget Factory  
  117. http://162.105.81.212/JudgeOnline/problem?id=2947  
  118.     pku2065 SETI  
  119. http://162.105.81.212/JudgeOnline/problem?id=2065  
  120.     *強烈推薦:  
  121. pku1753 Flip Game  
  122. http://162.105.81.212/JudgeOnline/problem?id=1753  
  123.     pku3185 The Water Bowls  
  124. http://162.105.81.212/JudgeOnline/problem?id=3185  
  125.     *變態題:  
  126. pku1487 Single-Player Games  
  127. http://162.105.81.212/JudgeOnline/problem?id=1487     
  128. 7.矩陣  
  129. 用矩陣來解決問題確實很常見,但我如今用到還不是很好,不少難題我還不會作。建議你們能夠去看Matrix67的那篇關於矩陣的十個問題,確實很經典,但不太好看懂。  
  130. *簡單:  
  131. pku3070 Fibonacci  
  132. http://162.105.81.212/JudgeOnline/problem?id=3070  
  133.     pku3233 Matrix Power Series  
  134. http://162.105.81.212/JudgeOnline/problem?id=3233  
  135.     pku3735 Training little cats  
  136. http://162.105.81.212/JudgeOnline/problem?id=3735  
  137.     8.高次同餘方程  
  138. 有關這個問題我應該是沒什麼發言權了,A^B%C=D,我如今只會求D和B,唉,很想知道A該怎麼求。就先推薦幾道題目吧,這裏涉及到了一個baby-step,giant-step算法。  
  139. fzu1759 Super A^B mod C  
  140. http://acm.fzu.edu.cn/problem.php?pid=1759  
  141.     pku3243 Clever Y  
  142. http://162.105.81.212/JudgeOnline/problem?id=3243  
  143.     pku2417 Discrete Logging  
  144. http://162.105.81.212/JudgeOnline/problem?id=2417  
  145.     hdu2815 Mod Tree  
  146. http://acm.hdu.edu.cn/showproblem.php?pid=2815  
  147.     9.容斥原理,鴿巢原理  
  148.     頗有用的兩個定理,但好像單獨考這兩個定理的不是不少。  
  149. *鴿巢原理:  
  150. pku2365 Find a multiple  
  151. http://162.105.81.212/JudgeOnline/problem?id=2356  
  152.     pku3370 Halloween treats  
  153. http://162.105.81.212/JudgeOnline/problem?id=3370  
  154.     *容斥原理:  
  155. hdu1695 GCD  
  156. http://acm.hdu.edu.cn/showproblem.php?pid=1695  
  157.     hdu2461 Rectangles  
  158. http://acm.hdu.edu.cn/showproblem.php?pid=2461  
  159.     10.找規律,推公式  
  160. 這類題目的設計通常都很是巧妙,真的是很難想出來,但只要找到規律或推出公式,就不是很難了。我不少都是在參考別人思路的狀況下作的,能本身想出來真的很不容易。  
  161. *我的感受都挺不錯的:  
  162. pku3372 Candy Distribution  
  163. http://162.105.81.212/JudgeOnline/problem?id=3372  
  164.     pku3244 Difference between Triplets  
  165. http://162.105.81.212/JudgeOnline/problem?id=3244  
  166.     pku1809 Regetni  
  167. http://162.105.81.212/JudgeOnline/problem?id=1809  
  168.     pku1831 不定方程組  
  169. http://162.105.81.212/JudgeOnline/problem?id=1831  
  170.     pku1737 Connected Graph  
  171. http://162.105.81.212/JudgeOnline/problem?id=1737  
  172.     pku2480 Longge's problem  
  173. http://162.105.81.212/JudgeOnline/problem?id=2480  
  174.     pku1792 Hexagonal Routes  
  175. http://acm.pku.edu.cn/JudgeOnline/problem?id=1792  
  176.     11.排列組合,區間計數,計數序列  
  177. 這些題目可能須要一些組合數學知識,基本上高中的知識就夠了。區間計數問題通常不難,但寫的時候須要仔細一些,各類狀況要考慮到位。至於像卡特蘭數,差分序列,斯特靈數···都還挺有意思,能夠去看看《組合數學》。  
  178. *簡單題:  
  179. pku1850 Code  
  180. http://162.105.81.212/JudgeOnline/problem?id=1850  
  181.     pku1150 The Last Non-zero Digit  
  182. http://162.105.81.212/JudgeOnline/problem?id=1150  
  183.     pku1715 Hexadecimal Numbers  
  184. http://162.105.81.212/JudgeOnline/problem?id=1715  
  185.     pku2282 The Counting Problem  
  186. http://162.105.81.212/JudgeOnline/problem?id=2282  
  187.     pku3286 How many 0's?  
  188. http://162.105.81.212/JudgeOnline/problem?id=3286  
  189.     *推薦:  
  190. pku3252 Round Numbers  
  191. http://162.105.81.212/JudgeOnline/problem?id=3252  
  192.     *計數序列:  
  193. pku1430 Binary Stirling Numbers  
  194. http://162.105.81.212/JudgeOnline/problem?id=1430  
  195.     pku2515 Birthday Cake  
  196. http://acm.pku.edu.cn/JudgeOnline/problem?id=2515  
  197.     pku1707 Sum of powers  
  198. http://acm.pku.edu.cn/JudgeOnline/problem?id=1707  
  199.     12.二分法  
  200. 二分的思想仍是很重要的,這裏就簡單推薦幾個純粹的二分題。  
  201. *簡單:  
  202. pku3273 Monthly Expense  
  203. http://162.105.81.212/JudgeOnline/problem?id=3273  
  204.     pku3258 River Hopscotch  
  205. http://162.105.81.212/JudgeOnline/problem?id=3258  
  206.     pku1905 Expanding Rods  
  207. http://162.105.81.212/JudgeOnline/problem?id=1905  
  208.     pku3122 Pie  
  209. http://162.105.81.212/JudgeOnline/problem?id=3122  
  210.     *推薦:  
  211. pku1845 Sumdiv  
  212. http://acm.pku.edu.cn/JudgeOnline/problem?id=1845  
  213.     13.穩定婚姻問題  
  214.     無心中接觸到這個算法,還蠻有意思的,《組合數學》中有詳細的介紹。  
  215. pku3487 The Stable Marriage Problem  
  216. http://acm.pku.edu.cn/JudgeOnline/problem?id=3487  
  217.     zoj1576 Marriage is Stable  
  218. http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1576  
  219.     14.數位類統計問題  
  220.     在航點月賽中第一次接觸到這類問題,scau大牛little龍推薦我看了一篇論文,09年劉聰的《淺談數位類統計問題》,這篇論文至關精彩,也至關詳細,每道題都有詳細的分析和做者的參考代碼。因此我也沒什麼可說的了,這些題的代碼我博客裏也就不貼了,你們直接去看論文吧。  
  221. 簡單:  
  222. ural1057 Amount of degrees  
  223. http://acm.timus.ru/problem.aspx?space=1&num=1057  
  224.     spoj1182 Sorted bit squence  
  225. https://www.spoj.pl/problems/SORTBIT/  
  226.     hdu3271 SNIBB  
  227. http://acm.hdu.edu.cn/showproblem.php?pid=3271  
  228.     較難:  
  229. spoj2319 Sequence  
  230. https://www.spoj.pl/problems/BIGSEQ/  
  231.     sgu390 Tickets  
  232. http://acm.sgu.ru/problem.php?contest=0&problem=390  
  233.       以上分類的題目在個人博客裏均可以找到詳細的解題報告和參考代碼,因爲比較麻煩就沒加連接,須要的能夠用個人站內搜索找到。  
  234.      本小結會不斷更新,轉載請註明出處。  
  235.      嚴重聲明:本文只適合ACM初學者,路過的大牛若有相同類型的比較好的題目能夠推薦一些啊。  
  236. 來自: http://hi.baidu.com/%B1%BF%D0%A1%BA%A2%5Fshw/blog/item/5305e12c7289973e359bf768.html  

 

http://apps.hi.baidu.com/share/detail/15350489php

 

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. 對數學類題目小結中的題目的簡單解題報告:  
  2.      偶然在網上看到某牛人發的數學題目小結,因而拷了回來作,下面每道題目後面註釋的是我寫的簡單解題報告(有些只是注意事項),並且並不是全部都有作,因此但願你們理解,目前正在更新中。  
  3.      原文鏈接在這裏:http://hi.baidu.com/%B1%BF%D0%A1%BA%A2_shw/blog/item/5305e12c7289973e359bf768.html   
  4.      這裏題目以前有‘ #’ 的表示已過,‘ ?’ 表示作了但還沒過。  
  5. /******************************************************************************************/   
  6.     1.burnside 定理,polya 計數法  
  7.      這個你們能夠看brudildi 的《組合數學》,那本書的這一章寫的很詳細也很容易理解。最好能徹底看懂了,理解了再去作題,不要只記個公式。  
  8.     * 簡單題:(直接用套公式就能夠了)  
  9. #    pku2409 Let it Bead    // 翻轉時注意珠子爲奇偶的狀況。  
  10.     http://acm.pku.edu.cn/JudgeOnline/problem?id=2409   
  11. #    pku2154 Color//LTC 的題目,看《具體數學》p141 ,有個化簡的公式。  
  12.     http://acm.pku.edu.cn/JudgeOnline/problem?id=2154   
  13. #    pku1286 Necklace of Beads  // 和2409 同樣  
  14.     http://acm.pku.edu.cn/JudgeOnline/problem?id=1286   
  15.     * 強烈推薦:(這題很不錯哦,很巧妙)  
  16. #    pku2888 Magic Bracelet  // 見月賽解題報告.A[i][j] 爲可達矩陣. 並且注意約數的個數範圍。其中矩陣的冪能夠預先求出全部matrix[2^i] 出來,而後根據二進制來 求。  
  17.     http://162.105.81.212/JudgeOnline/problem?id=2888   
  18.     2. 置換,置換的運算  
  19.      置換的概念仍是比較好理解的,《組合數學》裏面有講。對於置換的冪運算你們能夠參考一下潘震皓的那篇《置換羣快速冪運算研究與探討》,寫的很好。  
  20.     * 簡單題:(應該理解概念就能夠了)  
  21. #    pku3270 Cow Sorting  // 列出置換,而後對於每個置換循環,不斷用環中的最小的那個和其餘的進行換位,能夠獲得最優。另外還有一種狀況就是用整個置換最小的那個和該環進行換位,對於每一個環求出這兩個的最小值加起來就能夠了。  
  22.     http://acm.pku.edu.cn/JudgeOnline/problem?id=3270   
  23. #    pku1026 Cipher // 先找出全部置換循環,而後對於每一位來計算k% 循環長度後對應於哪一個位置,O(n) 複雜度。注意讀寫方面的東西。  
  24.     http://acm.pku.edu.cn/JudgeOnline/problem?id=1026   
  25.     * 置換冪運算:  
  26. #    pku1721 CARDS  // 詳細見05 集訓隊論文《置換羣快速冪運算研究與探討》。  
  27.     http://162.105.81.212/JudgeOnline/problem?id=1721   
  28. #    pku3128 Leonardo's Notebook// 摘自:http://blog.csdn.net/J_Factory/archive/2008/08/28 /2845330.aspx   
  29.    題目意思是:一個置換是否能夠由另外一個置換的平方得來的。一個置換的平方,原來偶數長的循環會被分裂成兩段長度相等的循環,而奇數長的循環不會被分裂。題目只是問是否存在,因此只要看所給置換中偶數長的循環是否成對,不然就不能由一個置換的平方得來。  
  30.    補充:由於若是所給置換的循環是偶數,則確定是由分裂過來的,那麼必定是成對的,不然若是是奇數,那麼有多是原來是奇數,也有多是原來的偶數分裂成兩個奇數循環。  
  31.     http://162.105.81.212/JudgeOnline/problem?id=3128   
  32.     * 推薦:(不錯的應用)  
  33. #    pku3590 The shuffle Problem  // 把n 分解成若干個數,使得他們的lcm 最大。在所取的數都是素數冪的時候是最大的,因此能夠用遞歸來枚舉全部的分解狀況,並且因爲要輸出序最小的,因此對於剩下的數能夠直接單獨都做爲一個循環,這樣就可使得序最小了。此外,這道題目須要注意求最大的lcm 的時候不能用dp 來作,由於這個具備後效 性,局部最優不必定使得全局最優。  
  34.     http://162.105.81.212/JudgeOnline/problem?id=3590   
  35.     3. 素數,整數分解,歐拉函數  
  36.      素數是可能數論裏最永恆,最經典的問題了(咱們的隊名就叫PrimeMusic^-^ )。素數的判斷,篩法求素數,大素數的判斷··· 還有不少其餘問題都會用到素數。  
  37.     * 最水最水的:(心情不爽時用來解悶吧)  
  38. #    pku1365 Prime Land   
  39. #    pku2034 Anti-prime Sequences// 直接搜索,用DL 優化會快不少。  
  40. #    pku2739 Sum of Consecutive Prime Numbers   
  41.     pku3518 Prime Gap   
  42.     pku3126 Prime Path   
  43.     pku1595 Prime Cuts   
  44.     pku3641 Pseudoprime numbers   
  45.     pku2191 Mersenne Composite Numbers   
  46.     pku1730 Perfect Pth Powers   
  47.     pku2262 Goldbach's Conjecture   
  48.     pku2909 Goldbach's Conjecture   
  49.     * 篩法:  
  50. #    pku2689 Prime Distance (很好的一個應用)// 先找出sqrt(2^32) 內的全部素數,而後相似篩選法篩選掉[l,u] 範圍內的數  
  51.     http://162.105.81.212/JudgeOnline/problem?id=2689   
  52.     * 反素數:  
  53. #    zoj2562 More Divisors  //waing... 後記:素數表少打了一個19 ~暈死啊~。。  
  54.     http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2562   
  55.     * 素數判斷,整數分解:  
  56.      這兩題都要用到miller_rabin 的素數判斷和pollard_rho 的整數分解,算法書上都會有,應該是屬於模板題吧,不過最好看懂本身敲一 遍。  
  57. #    pku1811 Prime Test  // 學習miller 和pollard 的題目。  
  58.     http://acm.pku.edu.cn/JudgeOnline/problem?id=1811   
  59. #    pku2429 GCD & LCM Inverse  // 分解lcm/gcd 爲互質的p,q ,要用到Miller Rabin 和Pollard rho 算法,基本上作出來以後都是模板題了。  
  60.     http://acm.pku.edu.cn/JudgeOnline/problem?id=2429   
  61.     * 歐拉函數:  
  62.      數論裏不少地方都能用到歐拉函數,很重要的。  
  63. #    pku1284 Primitive Roots (很水)// 定理:對於奇素數m, 原根個數爲phi(phi(m)), 因爲phi(m)=m-1, 因此爲phi(m-1)   
  64.     http://acm.pku.edu.cn/JudgeOnline/problem?id=1284   
  65. #    pku2407 Relatives (很水)  
  66.     http://acm.pku.edu.cn/JudgeOnline/problem?id=2407   
  67. #    pku2773 Happy 2006  //n 以後的互質的數都是n 以前的加上n 的倍數的。  
  68.     http://162.105.81.212/JudgeOnline/problem?id=2773   
  69. #    pku2478 Farey Sequence (快速求歐拉函數)// 求前n 個歐拉函數的和,用學習指導裏面的n*(1+lnln(n)) 的算法就能夠了,很是快。  
  70.     http://162.105.81.212/JudgeOnline/problem?id=2478   
  71. #    pku3090 Visible Lattice Points (法雷級數)  
  72.     http://acm.pku.edu.cn/JudgeOnline/problem?id=3090   
  73.     * 推薦:(歐拉函數,費馬小定理)  
  74. #    pku3358 Period of an Infinite Binary Expansion// 轉化爲高次同餘方程。  
  75.     http://acm.pku.edu.cn/JudgeOnline/problem?id=3358   
  76.     * 整數分解  
  77.      這個也很重要的耶,包括大數的表示方法。  
  78. #    pku2992 Divisors// 注意預處理,有不少組數據.   
  79.     http://acm.pku.edu.cn/JudgeOnline/problem?id=2992   
  80. ?    fzu1753 Another Easy Problem// 記得n! 有多少個p 的冪是怎麼求的。  
  81.     http://acm.fzu.edu.cn/problem.php?pid=1753   
  82.     hit2813 Garden visiting   
  83.     http://acm-hit.sunner.cn/judge/show.php?Proid=2813   
  84. ?    pku3101 Astronomy (分數的最小公倍數)// 高精度gcd ,超時中。  
  85.     http://acm.pku.edu.cn/JudgeOnline/problem?id=3101   
  86.     4. 擴展歐幾里得,線性同餘,中國剩餘定理  
  87.      這應該是數論裏比較重要的一個部分吧,這類的題目也挺多,具體的內容最好先看看數論書,我也整理過一些,能夠參考參考:  
  88.     http://hi.baidu.com/%B1%BF%D0%A1%BA%A2%5Fshw/blog/item/0676025d56a87d4afbf2c093.html   
  89.     * 簡單題:  
  90. #    pku1006 Biorhythms // 注意最後結果爲0 或負數的狀況  
  91.     http://acm.pku.edu.cn/JudgeOnline/problem?id=1006   
  92. #    pku1061 青蛙的約會  
  93.     http://acm.pku.edu.cn/JudgeOnline/problem?id=1061   
  94. #    pku2891 Strange Way to Express Integers  //x==a1(mod m1),x==a2(mod m2), 兩個方程能夠求出x ,而後從新令a1 爲求出的解x,m1=lcm(m1,m2) ,而後繼續和後面的進行求解。注意數據運算過程當中可能溢出的問題。  
  95.     http://acm.pku.edu.cn/JudgeOnline/problem?id=2891   
  96. #    pku2115 C Looooops   
  97.     http://acm.pku.edu.cn/JudgeOnline/problem?id=2115   
  98. #    pku2142 The Balance // 枚舉,x=x0+b/d*t ,直到x>min(x+y)   
  99.     http://162.105.81.212/JudgeOnline/problem?id=2142   
  100.     * 強烈推薦:  
  101. #    sgu106 The equation // 求ax+by=c 的時候,考慮a,b 爲零的特殊狀況,此外,若a,b 不是非負數,那麼擴展歐幾里德會有問題,因而咱們能夠把求x,y 變爲求 x'=-x,y'=-y ,此時a,b, 就能夠變爲非負數來處理,同時x',y' 的範圍也要相應取反。並且在取得區間時候,要注意區間邊緣要進行相應的取 整。後記:要用cin,cout 才能AC ,用printf 會wa 。。。極度無奈中,偶然才發現的~_ ~!   
  102.     http://acm.sgu.ru/problem.php?contest=0&problem=106   
  103. #    pku3708 Recurrent Function (經典)// 具體數學第一章。對於每一位求出循環節m1 ,還有該位從m 達到k 最少要通過r1 次標號變化,因而就能夠獲得x==r1 (mod m1) ,而後一樣的方法求其餘的位,接着就能夠兩兩方程這樣解中國剩餘定理。  
  104.     http://acm.pku.edu.cn/JudgeOnline/problem?id=3708   
  105.     5. 約瑟夫環問題  
  106.      這個問題仍是比較有意思的,不是很難。  
  107.     * 簡單題:  
  108. #    pku3517 And Then There Was One     
  109.     http://acm.pku.edu.cn/JudgeOnline/problem?id=3517   
  110. #    pku1781 In Danger   
  111.     http://acm.pku.edu.cn/JudgeOnline/problem?id=1781   
  112. #    pku1012 Joseph // 考慮剩下k+1 我的,那麼上一個出局的人確定是壞人,因此考慮接下來必定要最後一個壞人出局,因此m==0 或1(mod k+1) 。而後枚舉m ,再驗證。  
  113.     http://162.105.81.212/JudgeOnline/problem?id=1012   
  114. #    pku2244 Eeny Meeny Moo   
  115.     http://162.105.81.212/JudgeOnline/problem?id=2244   
  116.     * 推薦:  
  117. #    pku2886 Who Gets the Most Candies?// 線段樹+ 反素數。  
  118.     http://162.105.81.212/JudgeOnline/problem?id=2886   
  119.     6. 高斯消元法解方程  
  120.      其實解方程並非很難,就是按線性代數中學的那種方法,把係數矩陣化成上三角矩陣或數量矩陣,不過有些題目要判斷是否有解,或枚舉全部解。不過這類題目我認爲比較難的仍是怎麼去創建這個方程組,這個理解了,就沒什麼大問題了。  
  121.     * 簡單題:  
  122. #    pku1222 EXTENDED LIGHTS OUT  // 解異或運算的方程。n*m 個方程和未知數。  
  123.     http://162.105.81.212/JudgeOnline/problem?id=1222   
  124. #    pku1681 Painter's Problem   
  125.     http://162.105.81.212/JudgeOnline/problem?id=1681   
  126. #    pku1830 開關問題  // 以上三題作法都同樣。  
  127.     http://162.105.81.212/JudgeOnline/problem?id=1830   
  128.     * 推薦:  
  129. #    pku2947 Widget Factory  // 最好要化成嚴格的階梯型,方便判解。並且模某個數的時候解方程要用到擴展歐幾里德算法。  
  130.     http://162.105.81.212/JudgeOnline/problem?id=2947   
  131. #    pku2065 SETI// 與上題同樣。  
  132.     http://162.105.81.212/JudgeOnline/problem?id=2065   
  133.     * 強烈推薦:  
  134. #    pku1753 Flip Game // 數據範圍比較小,枚舉可過。若是用高斯消元作,那麼對於多解的時候也是須要枚舉的,並且這種類型不具備太大的擴展性,這裏高斯消元不見的比枚舉要優越。  
  135.     http://162.105.81.212/JudgeOnline/problem?id=1753   
  136. #    pku3185 The Water Bowls // 一樣若是對於無數解的時候,就須要對解進行枚舉。其實這道題目能夠先枚舉第一位是否須要翻轉,而後其餘的就已經肯定了,不過須要注意若是第一位翻轉的時候,答案別忘了加上去,我由於這個搞了很久~~~鬱悶。  
  137.     http://162.105.81.212/JudgeOnline/problem?id=3185   
  138.     // 同類題目,我本身加上去的。  
  139.     pku1395   
  140.     pku2055   
  141.     ural1561   
  142.     pku3254   
  143.     * 變態題:  
  144.     pku1487 Single-Player Games   
  145.     http://162.105.81.212/JudgeOnline/problem?id=1487     
  146.     7. 矩陣  
  147.      用矩陣來解決問題確實很常見,但我如今用到還不是很好,不少難題我還不會作。建議你們能夠去看Matrix67 的那篇關於矩陣的十個問題,確實很經典, 但不太好看懂。  
  148.     * 簡單:  
  149.     pku3070 Fibonacci   
  150.     http://162.105.81.212/JudgeOnline/problem?id=3070   
  151.     pku3233 Matrix Power Series   
  152.     http://162.105.81.212/JudgeOnline/problem?id=3233   
  153.     pku3735 Training little cats   
  154.     http://162.105.81.212/JudgeOnline/problem?id=3735   
  155.     8. 高次同餘方程  
  156.      有關這個問題我應該是沒什麼發言權了,A^B%C=D ,我如今只會求D 和B ,唉,很想知道A 該怎麼求。就先推薦幾道題目吧,這裏涉及到了一個baby- step ,giant-step 算法。  
  157. #    fzu1759 Super A^B mod C  //a^b%c=a^(b%phi(c))%c , 注意a==c 的狀況,  
  158.     http://acm.fzu.edu.cn/problem.php?pid=1759   
  159. #    pku3243 Clever Y  // 和上面差很少,不過c 不必定是素數,因此方法就是解出a^m*x+c*y=gcd(a^m,c) 的全部解來判斷,若無解則無論,由於c 不是素數可能 a^m 沒有逆。  
  160.     http://162.105.81.212/JudgeOnline/problem?id=3243   
  161. #    pku2417 Discrete Logging  //hash ,最直接的離散對數  
  162.     http://162.105.81.212/JudgeOnline/problem?id=2417   
  163. ?    hdu2815 Mod Tree // 超時中,時限好像挺緊的。  
  164.     http://acm.hdu.edu.cn/showproblem.php?pid=2815   
  165. #    sgu261 求A   wa test 23.. 後記:原來是hash 有錯誤,由於用了vector 後是從0 開始的,而我判斷hash 鏈表結束的是0 ,若是剛好最後一個是在vector 的0 位 置,那麼就會忽略掉這個數據,因此就會出現找不到那個數的狀況。另外進行最後答案輸出的時候,vector 的size ()是返回unsigned int 的,若是size( )是0 ,那麼size()-1 就是2^32-1 了,因此這裏就須要特別注意。  
  166. ? http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3538 //handling... 尚未找出更好的方法解決當a 和p 不互質狀況下的解法。  
  167. http://202.120.80.191/problem.php?problemid=2700   
  168.     9. 容斥原理,鴿巢原理  
  169.      頗有用的兩個定理,但好像單獨考這兩個定理的不是不少。  
  170.     * 鴿巢原理:  
  171. #    pku2356 Find a multiple // 同下。  
  172.     http://162.105.81.212/JudgeOnline/problem?id=2356   
  173. #    pku3370 Halloween treats////n 個數,尋找c 個(c<=n) ,使得他們的和爲c 的倍數。由抽屜原理,前n 個數的 mod c 確定有重複的,那麼必定存在一個區間使得他們的和是c 的倍數。  
  174.     http://162.105.81.212/JudgeOnline/problem?id=3370   
  175.     * 容斥原理:  
  176. #    hdu1695 GCD // 求gcd(x,y)=k 的個數,至關於求gcd(x/k,y/k)=1 的個數,其中x/k 在[a/k,b/k],y/k 在[c/k,d/k] 之間。所 以就是求在必定區間內,x ,y 互質的對數。假設b<d, (此處b,d 已除k )那麼對於<=b, 直接用歐拉函數就能夠了,對於[b+1,d] 之 間的數,對於每個分解質因數,而後利用容斥原理,求出[1,b ]之間和這個數互質的個數。注意最後答案可能超過int ,用I64d 輸出。  
  177.     http://acm.hdu.edu.cn/showproblem.php?pid=1695   
  178. #    hdu2461 Rectangles // 對稱狀況下才能使用懶標記,並且覆蓋的標號不向下傳。另外在pku3695 上一樣的題目因爲時限很緊,因此能夠對座標進行離散化。log1000 和 log40 仍是有差異的。  
  179.     http://acm.hdu.edu.cn/showproblem.php?pid=2461   
  180.     10. 找規律,推公式  
  181.      這類題目的設計通常都很是巧妙,真的是很難想出來,但只要找到規律或推出公式,就不是很難了。我不少都是在參考別人思路的狀況下作的,能本身想出來真的很不容易。  
  182.     * 我的感受都挺不錯的:  
  183. #    pku3372 Candy Distribution// 找規律。。。其實能夠進行分析的。  
  184.     http://162.105.81.212/JudgeOnline/problem?id=3372   
  185. #    pku3244 Difference between Triplets// 這道題目要用到一個很巧妙的轉化,把比較轉化爲絕對值的計算。由於max(a,b,c)-min(a,b,c)=(|a- b|+|a-c|+|b-c|)/2, 而後剩下的就容易作了。  
  186.     http://162.105.81.212/JudgeOnline/problem?id=3244   
  187.     pku1809 Regetni   
  188.     http://162.105.81.212/JudgeOnline/problem?id=1809   
  189.     pku1831 不定方程組  
  190.     http://162.105.81.212/JudgeOnline/problem?id=1831   
  191. #    pku1737 Connected Graph //f[n] 爲n 個點的聯通數,那麼f[n]=2^(c[n][2])-sigma(f[k]*c[i-1][k-1]*2^(c[n-k][2]))   
  192.     http://162.105.81.212/JudgeOnline/problem?id=1737   
  193. #    pku2480 Longge's problem//sigma(gcd(i,n))=sigma(d|n && d*[gcd(i,n)==d]), 枚舉全部n 的約數d ,而後對於n/d ,找出全部和n/d 互質的數的個數就是gcd(i,n)==d 的個數,從而用歐拉 函數解決。  
  194.     http://162.105.81.212/JudgeOnline/problem?id=2480   
  195.     pku1792 Hexagonal Routes   
  196.     http://acm.pku.edu.cn/JudgeOnline/problem?id=1792   
  197.     11. 排列組合,區間計數,計數序列  
  198.      這些題目可能須要一些組合數學知識,基本上高中的知識就夠了。區間計數問題通常不難,但寫的時候須要仔細一些,各類狀況要考慮到位。至於像卡特蘭數,差分序列,斯特靈數··· 都還挺有意思,能夠去看看《組合數學》。  
  199.     * 簡單題:  
  200.     pku1850 Code   
  201.     http://162.105.81.212/JudgeOnline/problem?id=1850   
  202.     pku1150 The Last Non-zero Digit   
  203.     http://162.105.81.212/JudgeOnline/problem?id=1150   
  204.     pku1715 Hexadecimal Numbers   
  205.     http://162.105.81.212/JudgeOnline/problem?id=1715   
  206.     pku2282 The Counting Problem   
  207.     http://162.105.81.212/JudgeOnline/problem?id=2282   
  208.     pku3286 How many 0's?   
  209.     http://162.105.81.212/JudgeOnline/problem?id=3286   
  210.     * 推薦:  
  211.     pku3252 Round Numbers   
  212.     http://162.105.81.212/JudgeOnline/problem?id=3252   
  213.     * 計數序列:  
  214.     pku1430 Binary Stirling Numbers   
  215.     http://162.105.81.212/JudgeOnline/problem?id=1430   
  216.     pku2515 Birthday Cake   
  217.     http://acm.pku.edu.cn/JudgeOnline/problem?id=2515   
  218.     pku1707 Sum of powers   
  219.     http://acm.pku.edu.cn/JudgeOnline/problem?id=1707   
  220.     12. 二分法  
  221.      二分的思想仍是很重要的,這裏就簡單推薦幾個純粹的二分題。  
  222.     * 簡單:  
  223.     pku3273 Monthly Expense   
  224.     http://162.105.81.212/JudgeOnline/problem?id=3273   
  225.     pku3258 River Hopscotch   
  226.     http://162.105.81.212/JudgeOnline/problem?id=3258   
  227.     pku1905 Expanding Rods   
  228.     http://162.105.81.212/JudgeOnline/problem?id=1905   
  229.     pku3122 Pie   
  230.     http://162.105.81.212/JudgeOnline/problem?id=3122   
  231.     * 推薦:  
  232. #    pku1845 Sumdiv // 令a=p1^m1 * p2^m2 * ... * pk^mk, 那麼因爲因數和是一個積性函數,   
  233. 因此 f(a)=f(p1^m1)*f(p2^m2)*..  ; f(x^t)=1+x+x^2+..+x^t=(1-x^(t+1))/(1-x);   
  234. 因爲mod 某個數,因此能夠1/(1-x) 能夠用同餘數解決。不過注意若是MOD | x-1, 那麼 f(x^t)=t+1 特殊處理一下。  
  235.     http://acm.pku.edu.cn/JudgeOnline/problem?id=1845   
  236.     13. 穩定婚姻問題  
  237.      無心中接觸到這個算法,還蠻有意思的,《組合數學》中有詳細的介紹。  
  238.     pku3487 The Stable Marriage Problem   
  239.     http://acm.pku.edu.cn/JudgeOnline/problem?id=3487   
  240.     zoj1576 Marriage is Stable   
  241.     http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1576   
  242.     14. 數位類統計問題  
  243.      在航點月賽中第一次接觸到這類問題,scau 大牛little 龍推薦我看了一篇論文,09 年劉聰的《淺談數位類統計問題》,這篇論文至關精彩,也至關詳 細,每道題都有詳細的分析和做者的參考代碼。因此我也沒什麼可說的了,這些題的代碼我博客裏也就不貼了,你們直接去看論文吧。  
  244.      簡單:  
  245.     ural1057 Amount of degrees   
  246.     http://acm.timus.ru/problem.aspx?space=1&num=1057   
  247.     spoj1182 Sorted bit squence   
  248.     https://www.spoj.pl/problems/SORTBIT/   
  249.     hdu3271 SNIBB   
  250.     http://acm.hdu.edu.cn/showproblem.php?pid=3271   
  251.      較難:  
  252.     spoj2319 Sequence   
  253.     https://www.spoj.pl/problems/BIGSEQ/   
  254.     sgu390 Tickets   
  255.     http://acm.sgu.ru/problem.php?contest=0&problem=390   
  256.        以上分類的題目在個人博客裏均可以找到詳細的解題報告和參考代碼,因爲比較麻煩就沒加連接,須要的能夠用個人站內搜索找到。  
  257.      本小結會不斷更新,轉載請註明出處。  
  258.      歐拉函數。  
  259. # pku 3696 The Luckiest number     
  260.    //(10^n-1+..+10+1)=(10^n-1)/9, 歐拉函數,離散對數,注意溢出處理(相乘時變爲aT+b )。  
  261.     http://acm.pku.edu.cn/JudgeOnline/problem?id=3696   
  262.      樹狀數組  
  263. # hdu 3333   
  264. 先求出每一個位置後面和它同樣的最近的那個數的位置next[i] ,而後用樹狀數組記錄不重複的前n 個數的和,接着對詢 問區間排序,從左到右作,記left 爲在當前區間左邊的那些數,經過樹狀數組,將left 到next[left]-1 之間的全部的數都減去 val[left] ,而後就能夠直接像sum[i]-sum[j] 那樣方便的求出區間裏面沒有重複的數的和。  
  265. http://acm.hdu.edu.cn/showproblem.php?pid=3333   
  266. # pku 3222 // 樹的dfs 和分治思想  
  267. 解題報告見此:http://acm.pku.edu.cn/JudgeOnline /showmessage?message_id=129459   
  268. 本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/hncqp/archive/2010/06/02/5643380.aspx  

 

 


 

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. pku 1150 The Last Non-zero Digit  
  2.    和計算排列數末尾有多少個零有些相似,把2,5因子都拿出來,剩下的數的最後一個數字只有1,3,7,9。只有各位上的數字纔會影響最後一個非零數字。統計能夠用遞歸來統計,求出1~n中因子2,5的個數,以及3,7,9結尾的數和去掉2,5後新的到的數中3,7,9結尾的數。結果就是 2^(dig[2]-dig[5])*3^(dig[3])*7^(dig[7])*9^(dig[9])  mod 10 ,用快速冪乘來算。  
  3. pku 1186 方程的解數 (hash,枚舉)  
  4.    題目給出最多有6個未知數,未知數的取值在[1,150]之間,直接枚舉時間複雜度是150^6,這個時間不能接受。枚舉前一半的未知數能夠到達的值(用hash表保存),再枚舉後一半,這樣能夠加快枚舉。  
  5. pku 1285 Combinations, Once Again(有重複的組合,dp)  
  6.     對輸入的數先統計一下,每一個數出現的次數。若是每次重複的數,輸出c[n][m]就能夠。有重複數時,要考慮到取相同元素的狀況,那麼ans=sigma c[x][i]*z[s][m-i]  0<i<=m z[i][j]表示從1到第i堆中拿j個,把重複的數字表示成a[1],a[2]..,a[s],s個數出現重複。注意幾個邊界條件,c[0][0]=1,z[1][0...a[1]]=1,z[i][1]=i 2<=i<=s。  
  7. pku 1430 Binary Stirling Numbers (stirling 數)  
  8.    在wiki上找到公式,原來mod 2時和組合數有關係。原文以下:  
  9.     Using a Sierpiński triangle, it's easy to show that the parity of a Stirling number of the second kind is equal to the parity of a related binomial coefficient:  
  10. Or directly, let two sets contain positions of 1's in binary representations of results of respective expressions:  
  11. then mimic a bitwise AND operation by intersecting these two sets:  
  12. to obtain the parity of a Stirling number of the second kind in O(1) time.  
  13. pku 1465 Multiple(BFS,整除)  
  14.    給幾個一些數學,找出由這些數字組成的數中最小的一個能整除n的數。0<n<4999,把全部的數從小到大開始,在入隊列前看下該數所到達的餘數是否被前面小的數求到過,若否才入隊。這樣搜索的空間就只有n的剩餘繫了。     
  15. pku 1715 Hexadecimal Numbers(組合)  
  16.    不重複的組合問題,知道第幾個找出這個組合。從最高位開始,一位一位肯定dfs下去,每次都要保證已肯定的位的全部組合很多於題目給出的序號。最多八層。  
  17. pku 1737 Connected Graph(組合數學,高精度)  
  18.    題目是求n個點用邊連接,造成聯通圖的方案總算。知足聯通的邊數在[n-1,n(n-1)/2],本身一開始想分邊數狀況考慮,發現狀況比較複雜,推出一個像整數拆分的方法。還來在網上看到一種更好的解法。公式是f[n]=f[k]*f[n-k]*c[n-2][k-1]*((2^k)-1) (c[n-2][k]表示組合數,1<=k<n);考慮一個完整的聯通圖,能夠標記兩個點1,2。將點1,點2分別劃分在兩個子聯通圖中分別爲g1,g2。在g1中最少要有一個點與g2中的點2連接。這樣的方式共2^k-1中,而g1總有c[n-2][k-1]個。將他們乘在一塊兒就有了上面的式子。另外這題要用到高精度,終於用java寫了個高精度的題感受真方便。  
  19. pku 1845 Sumdiv(積性函數,因子和)  
  20.    求a^b的因子和(包括1和a^b),因爲因子和是積性函數。因此f(a^b)=f(p1^t1)*f(p2^t2)...*f(pn^tn),對於f(p^t)的狀況:  
  21.  f(p^t)=1+p+p^2+...+p^t=(p^(t+1)-1)/p-1。題目還要求mod 9901,這雖然是個素數,可是數據中出現了p-1 = 0 (mod 9901)的狀況,這時f(p^t)=t+1 (mod 9901),要特殊處理下,其他用快速冪乘。  
  22. pku 1809 Regetni(奇偶,組合)  
  23.   根據 這個公式計算 A=|x1y2 - y1x2 + x2y3 - y2x3 + x3y1 - y3x1|/2 三角形的面積是否爲整數。這題不要去算具體的面積,答案和所選點的奇偶性有關,點的只有4種類型,(0,0),(1,1),(1,0),(0,1)。把這4類點的全部組合狀況(共20種)代入公式  
  24. 發現,當最少有兩個點屬於同一類型是面積纔是整數。那麼只有統計出全部點的組合狀況就能夠得出答案了。點的組合狀況  
  25. {0,1,2},{0,1,3},{0,2,3},{1,2,3},{0,1,1},{0,2,2},{0,3,3},{1,0,0},{1,2,2},{1,3,3},{2,0,0},{2,1,1},{2,3,3},  
  26. {3,0,0},{3,1,1},{3,2,2},{0,0,0},{1,1,1},{2,2,2},{3,3,3} 這些是合理的組合。  
  27. pku 1831 不定方程組(構造解)  
  28.     這個題目頗有意思,說a1+a2..an=s,1/a1+1/a2....+1/an=1;求一組這樣的解。  
  29. 爲了找S的一組解,能夠把S變小,來獲得S的解。兩種變小的方法:p/2+1/2=1 ,p*2+2=S;或p/2+1/3+1/6=1,p*2+9=S;選這兩種方式是爲了使奇數,偶數都有變小的方法。更重要的是當S必定大時,必定會有解。證實能夠經過概括來證得。因此事先保留一些小的S的解。大的S經過遞歸的構造出解來。  
  30. pku 2142 The Balance(不定方程)  
  31.    不定方程題,解a*x+b*y=d 。先求a*x0+b*y0=k。a/=k,b/=k,d/=k; 獲得等價方程a'*x+b'*y=d',通常解爲x=x0-b'*t,y=y0+a't;其中t爲任意整數。  
  32. pku 2154 Color(波利亞定理,着色問題)  
  33.       一個經典的着色問題,題目描述的是一個正常的旋轉羣,它的輪換指標爲1/n*sigma(euler(d)*(xd)^(n/d)) ,其中d爲n的全部因子。有了這個生成函數就能夠容的計算n種顏色,在正n邊形上着色的不一樣方案數了。  
  34. pku 3352 In Danger(約瑟夫環)  
  35. 簡單題,和具體數學第一章提到的問題是同樣的,講每數2去掉一人,求勝利人的編號。公式是  
  36.           f(n)=f(n/2)*2-1 n=2*k   
  37.           f(n)=f(n-1/2)*2+1  n=2*k+1  
  38. pku 2282 The Counting Problem(計數統計)  
  39. 一個計算問題,統計a,b之間0-9這些數字出現的次數。能夠分別計算f(b),f(a-1)的大小,其中 a<b f(n)表示1到n數字出現的統計。對於f(n) ,能夠按位計算,從個位到n的最高位,分別計算0-9的個數,0的計算有些特殊,由於0不能是一個數字的最高位  
  40.  while(a>=times)  
  41.    {  
  42.        len=a/(times*10);  
  43.        for(i=0;i<10;i++)aa[i]+=len*times;  
  44.        if(len>0)aa[0]-=times;  
  45.        tmp=(a/times)%10;  
  46.        if(a>=times*10)start=0;else start=1;  
  47.        for(i=start;i<tmp;i++)aa[i]+=times;  
  48.        aa[tmp]+=a%times+1;  
  49.        times*=10;  
  50.    }  
  51. pku 2429 gcd lcm Inverse  
  52.   大數分解,要分解的數很大,到了2^63,普通的素數表方法行不通,要使用Pollard分解,分解lcm/gcd。須要注意的是會出現lcm==gcd的狀況。  
  53. pku 2769 Reduced ID Numbers(同餘)  
  54.   給出n個數,找一個數p,使得沒個數mod p的值不相等。即n個數mod p不一樣餘。先求出任意兩個數的差(要正的),找個最小的數,使其不是前面求的差的約數。  
  55. pku 2891 Strange Way to Express Integers(解模線性方程組)  
  56.   這題是解個同餘方程組,既解x= ai (mod bi) ,題目沒有保證bi之間兩兩互素,因此中國剩餘定理,在這裏沒用。能夠經過先求  
  57. 兩個方程的解,這樣就將兩個方程和併成一個,直達只剩下一個爲止就能夠的到答案了。在合併的過程當中有不能合併的狀況出現就  
  58. 說明整個方程組沒有解。c=a1 (mod b1),c=a2 (mod b2)  c=a1+b1*x, a1+b1*x= a2 (mod b2),用擴展歐幾里德求出c。兩個方程就  
  59. 能夠用 c'= c (mod lcm(b1,b2))表示。  
  60. hdu 1792 A New Change Problem  
  61.   題是說:給兩個互質的數,要求出兩個數所不能組合出的正整數。在較大數的每個等價類中找出最小的一數,它是較小數的倍數,那麼在這個等價類中小於這個數的都是不能被表示出來的。最大的一個不能被表示出來的數是(n-1)*m-n 其中n>m,因爲n有n個等價類,一個類包含不可表示出的數是m-1,老是是(n-1)*(m-1)/2  
  62. pku 2888 Magic Bracelet(帶約束的着色問題)  
  63.    這題仍是要用到波利亞定理,惟一的不一樣是計算矩陣的冪模,再求矩陣的跡。具體的推導就不知道是怎麼來的。關於矩陣是指容許相鄰的兩種顏色之間有邊,這就造成了個無向圖。矩陣的n冪模,和快速冪乘的原理是同樣的。  
  64. pku 2917 Diophantus of Alexandria(不定方程,因數分解)  
  65.    模擬下後發現,知足1/x+1/y=1/z的x,y是z的約數,而且x,y互素。統計x,y的對數再加1(x=z,y=z是特殊的一對)。  
  66. 後來看到討論裏有公式,(x-z)(y-z)=z^2,計算小於z,並是z^2的約數就是答案了。  
  67. pku2992 Divisors (組合數,因子個數)  
  68.  計算C(n,k)的因子個數,因爲n很小,最大爲431,因此能夠把1~431的全部數先因式分解,再來統計n*(n-1)...(n-k+1)/k*(k-1)...1的素因子個數。  
  69. pku 3370 Halloween treats(鴿巢原理)  
  70.   給定m個整數a1,a2,a3,..,am,存在整數k和l,0<=k<l<=m,使得ak+1 + ak+2 + ... +al可以被m整除。也就是說存在連續的一段al,...am,之和被m整除。考慮從a1...ai的和si,一定有si%m==0 或 si = sj (mod m),這種狀況下取ai+1...aj,這段之和會是m的倍數。   
  71. pku 3128 Leonardo's Notebook(置換)  
  72.    題目意思是:一個置換是否能夠由另外一個置換的平方得來的。一個置換的平方,原來偶數長的循環會被分裂成兩段長度相等的循環,而奇數長的循環不會被分裂。題目只是問是否存在,因此只要看所給置換中偶數長的循環是否成對,不然就不能由一個置換的平方得來。  
  73. pku 3244 Difference between Triplets(公式變形)  
  74.    很巧妙的公式變形,惋惜不本身想出來的。首先計算max(a,b,c)-min(a,b,c)=(|a-b|+|b-c|+|a-c|)/2,有了這個公式就能夠把比較變成加。那麼  
  75.    D(Ta, Tb) = max {Ia − Ib, Ja − Jb, Ka − Kb} − min {Ia − Ib, Ja − Jb, Ka − Kb}  
  76.              =(|Ia-Ib-Ja+Jb|+|Ja-Jb-Ka+Kb|+|Ia-Ib-Ka+Kb|)/2  
  77.           令Ia-Ja=Wa,Ja-Ka=Ua,Ia-Ka=Ha;  
  78.              =(|Wa-Wb|+|Ua-Ub|+|Ha-Hb|)  
  79.    將讀入的數據轉化W,U,H三個數組,分別計算這三個數組任意兩個元素的差的絕對值之和。這裏要用小於O(n^2)的算法,把數組排序後能夠拿掉絕對值,統計每一個元素做爲減數出現的次數。  
  80. pku 3324 Lucas-Lehmer Test(模運算)  
  81.    首先要用到高精度,用java很方便。在計算模的時候,因爲是mod 2^p-1,能夠用移位來加速。  
  82.    a=r (mod 2^p-1) => a=k*(2^p-1)+r,先算個打概的k,獲得的r>2^p-1,繼續減2^p-1。這樣比直接模運算要快。  
  83.      
  84. pku 3372 Candy Distribution(二次剩餘系)  
  85.    根據題目的意思能夠獲得方程 1+n(n+1)/2 =a (mod N),顯然這是一個二次模方程。要看N的二次徹底剩餘系是否都有解。  
  86. 結論是N要是2^x,x>=0,結論的證實還不知道。  
  87. pku 3516 Hide That Number(高精度)  
  88.     題目是說給出一個數y,找到 x*11= y (mod 10^length(y)),若是y很小,直接求出逆來就能獲得答案了,但是y很大,構造的方法沒有想到,最後仍是暴力作的。每次在y的前面加個數學(1,2..9),或是加上10這兩個數字,看新獲得的數字是11的倍數。如果,就能夠獲得答案了。因爲y很大,普通的高精度會超時,要增長進制。  
  89. pku 3847 The Stable Marriage Problem(穩定婚姻)  
  90.     穩定婚姻問題。用到了延遲承認算法。用最優方提出匹配,而被匹配者,不會當即接受,而是在提出要求者的集合中去掉,比當前着差的元素,知道沒有人提出匹配,被匹配者才肯定下匹配關係。值得一提的是,穩定婚姻的存在性不能被保證。  
  91. pku 3358 Period of an Infinite Binary Expansion(數論,歐拉定理)  
  92.     這個題目是求兩個數相除p/q,結果的小數部分用二進制表示,當q不是2的冪時,這個二進制是個無線循環的01串。  
  93. 下面是個模擬小數部分按二進制表示,能夠發現二進制傳必定會有循環,由於p=p%q,既然是循環,又是模運行,這和p模q的階有關,p%q的階必定是q的歐拉函數的因子。這樣轉換成一個模方程:p*2^n = x(mod q),固然p和q要互素,2和q互素。在計算前把q中的2去掉,p,q同除最大公因數。而後從1開始枚舉,因此的歐拉數的因子。  
  94. #include <stdio.h>  
  95. #define pr printf  
  96. int main()  
  97. {  
  98.    int i,p,q;  
  99.    while(scanf("%d%d",&p,&q)==2){  
  100.  pr("0.");  
  101.         for(i=1;i<=100;i++)  
  102.         {  
  103.             p*=2;  
  104.             pr("%d",p/q);  
  105.             p=p%q;     
  106.         }     
  107.         pr("/n");  
  108.     }  
  109. }  
  110. /* 
  111. 5 192 
  112. 0.000001101010101010101010101010101010101010101010101010101010101010101010101010 
  113. 1010101010101010101010 
  114. */  
  115. pku 3590 The shuffle Problem(置換,數的分解)  
  116.   題目求一個排列經過置換以後再回到原來的那個排列,對於給定的排列求出一個知足置換次數最多的一個置換。一個置換能夠分解成多個循環,每次置換元素之和在同一個循環中的元素髮生轉換,同一個循環中循環節是元素的個數,因此這個題是要把一個數分紅多個數的和,讓這些數的最小公倍數最大。要保證lcd最大應該分解出來的每一個數兩兩互素。因爲數比較小,23是能最大的素數,因此直接枚舉能夠知足。  
  117. pku 3641 Pseudoprime numbers(費馬定理,快速冪乘)  
  118.   簡單題,先看p是不是素數,如果直接輸出no。不然計算(a^p)%p,若結果是a輸出yes,不然輸出no。  
  119. 2008哈爾濱賽區網絡預選1007 The Luckiest number(歐拉定理運用)  
  120.    題目說要找個數t,它的數字全是8,對於給定的n,t要是n的整數倍,求最小的t。  
  121. 賽後才發現這題並不拿,多是我太菜了。這題問題能夠轉換成8*(10^x-1)/9 = 0 (mod n ),這樣就能夠看出還有因子5和16的n是沒有解的。而且n是偶數時,其解是n除去2因子的解。最後就是求解 10^x = 1 (mod 9*n)  n是一個奇數,因此(10,n)=1,這樣就能夠根據歐拉定理 ,知足等式的解只能是 euler(9*n)的因子。枚舉歐拉數的因子,最小的那個就是要求的解。因爲n能夠到2000000000,快速冪乘要支持64位運算。   
  122. 2008 成都網絡預選 1005 Farey Sequence Again(Farey Sequence ,構造)  
  123.     與其說是數學題,還不如說是個模擬題。Farey Sequence序列規律性很強,暴力模擬後發現有不少規律。要用到的一個性質是  
  124. Fn中連續的3個元素,a1/b1 ,a2/b2,a3/b3。若a1+a3<n 而且 b1+b3<=n ,則 a2=a1+a3,b2=b1+b3。這個性質頗有用,根據它能夠推出序列中前n項的分子不超過3,並且在構造的時候也要用到這個性質,找個第一個分母是2和3的元素的位置,均可以經過觀察看出規律。序列就分紅了3段,第一段分子只有1,第二段分子有1和2,並且是2,1,2,1,2,。。。這樣循環的。第三段有1,2,3,也會出現循環,或是3,1,3,2 或是3,2,3,1這樣的循環結。因此的規律均可以在模擬的序列中看出。只有3爲分子時看不出規律,可是這樣的元素左右兩個必定是分子爲1和2的兩個元素,根據性質,知道3周圍的兩個元素的分母,就能夠得出分子爲3的元素的分母  
  125. 2008 哈爾濱現場賽  Simple Addition Expression hdu2451  
  126. 經過讀題發現知足要求的數字,最高位由1,2,3組成,最低位由0,1,2組成,中間由0,1,2,3組成。計算小於n的數有多少個這種數就是答案。  
  127. 2008 哈爾濱現場賽 K-dimension number hdu2447  
  128.  讀題後發現K要麼是p,要麼是p^2 (p爲素數),且p<=97,K維數n的狀況只有三種。  
  129.   一,當k爲p時,n=(p')^(p-1)  
  130.   二,當k爲p^2時,n=(p1')^(p-1)*(p2')^(p-1)或n=(p1')^(p^2-1)  
  131.   三,當k爲1是,n=1。  
  132. zoj 2562 More Divisors(反素數,dp)  
  133.   反素數是指在不大於n數中含有最多約數,值最小的一個,好比2,4,6。。都是反素數。題目要求在小於10^16中的反素數。  
  134. 因爲反素數要求約數儘可能多,因此素因子個數要儘可能少,而指數要儘可能大,這樣一個數成爲反素數的機會就大。因此只要考慮前13個素數所能組成的數就能夠。轉移方程  
  135.    f[i][j]= min{f[i-1][j/(k+1)]*p(i)^k}  
  136.  f[i][j] 表示i個素數,有j個約數的最小值。p(i)表示第i個素數,j%(k+1)==0  
  137. 要注意的地方: j不超過50000。  
相關文章
相關標籤/搜索