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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

poj1150

發布時間:2025/1/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poj1150 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這道題告訴我們遞推一定要慢慢細細的推
Pmn=n!/m!,我們可以先考慮n!的最后一位是什么
首先最后一位非0位我們首先想到把0都干掉
也就是先把2和5提出來,這兩個其實是同樣的方法
對于N!中有多少個因數2 f(n)=f(n div 2)+ n div 2這個不難想
提出2和5之后剩下來的數我們只要考慮末位,只可能是1,3,7,9
當我們討論末位為x時,設f(n,x)表示N!中提出2和5后某位是x的個數
首先一個數列實際上可以分成偶數列和奇數列,以1*2*3*4*5*6*7*8*9*10為例
分成1 3 5 7 9, 2 4 6 8 10
這樣我們嘗試分別進行統計,可以發現,實際上2 4 6 8 10中把2提出來就是 1 2 3 4 5 又回到了對n!這種問題
所以不難得到f(n,x) = f(n/2,x) + g(n,x),g(n)表示奇數列中的數目,所以我們需要解決g(n)
觀察奇數列,實際上又分成了兩部分非5的倍數以及5的奇倍數
根據上面處理的經驗不難得到?g(n,x) = n/10+(n%10 >= x)+g(n/5,x) ?
這樣對于n!的最末非0位就處理出來了
而對于n!/m!,我們只要求出m~n之間的2和5的個數,某位為1,3,7,9的個數
這顯然可以用前綴合德思想搞,但要注意2和5的個數誰多誰少

1 const table:array[1..4,0..3] of longint=((6,2,4,8), 2 (1,3,9,7), 3 (1,7,9,3), 4 (1,9,1,9)); 5 var a:array[0..5] of longint; 6 f,i,n,m,ans:longint; 7 8 function get2(x:longint):longint; 9 begin 10 if x=0 then exit(0) 11 else exit(x shr 1+get2(x shr 1)); 12 end; 13 14 function get5(x:longint):longint; 15 begin 16 if x=0 then exit(0) 17 else exit(x div 5+get5(x div 5)); 18 end; 19 20 function getx(n,x:longint):longint; 21 begin 22 if n=0 then exit(0) 23 else 24 if n mod 10>=x then exit(1+n div 10+getx(n div 5,x)) 25 else exit(n div 10+getx(n div 5,x)); 26 end; 27 28 function get(n,x:longint):longint; 29 begin 30 if n=0 then exit(0) 31 else exit(get(n shr 1,x)+getx(n,x)); 32 end; 33 34 begin 35 while not eof do 36 begin 37 readln(n,m); 38 m:=n-m; 39 a[1]:=get2(n)-get2(m); 40 f:=get5(n)-get5(m); 41 if a[1]<f then 42 begin 43 writeln(5); 44 continue; 45 end; 46 ans:=1; 47 a[2]:=get(n,3)-get(m,3); 48 a[3]:=get(n,7)-get(m,7); 49 a[4]:=get(n,9)-get(m,9); 50 if a[1]<>f then 51 ans:=ans*table[1,(a[1]-f) mod 4] mod 10; 52 for i:=2 to 4 do 53 ans:=ans*table[i,a[i] mod 4] mod 10; 54 writeln(ans); 55 end; 56 end. View Code

?

轉載于:https://www.cnblogs.com/phile/p/4473120.html

總結

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

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