洛谷 P1050 迴圈

2021-07-23 21:32:47 字數 1114 閱讀 4906

輸入檔案circle.in只有一行,包含兩個整數n(1 <= n < 10^100)和k(1 <= k <= 100),n和k之間用乙個空格隔開,表示要求n的正整數次冪的最後k位的迴圈長度。

輸出格式:

輸出檔案circle.out包括一行,這一行只包含乙個整數,表示迴圈長度。如果迴圈不存在,輸出-1。

輸入輸出樣例

輸入樣例#1:

32 2

輸出樣例#1:

4 說明

對於30%的資料,k <= 4;

對於全部的資料,k <= 100。

noip2005普及組第四題

這題,出成普及組的真是屈才了。

首先,聽說暴力模擬30分(反正我沒試過)。

說正解吧,如果第k位的迴圈節長度是l,那麼第k+1位迴圈節的長度一定是l的整數倍。

設:t等於這個數的後k位(因為只有後k位有用)。

d等於這個數乘d後k位相同。s表示上一次這個數的迴圈節次方的後k位。

每次s*d,t*s,就可以遞推了。

判斷-1的方法:

開乙個bool陣列記錄這一位出現過那些數,第一次重複的是原數字,就找到了迴圈節,否則,就是-1.

注意:後7個點迴圈節也需要高精度。

(除錯到再也不想寫高精度)。

感謝orion_rigel神犇指導。

#include

#include

#include

using

namespace

std;

int ori[105],s[105],t[105],c[105],d[105],k,loop[1005],len;//t是積,s是乘數

bool b[15];

char ch[105];

void mul1()

void mul2()

void mul(int x)

}bool dfs(int dep)

else

return

0; }

else

b[t[dep]]=1;

}}int main()

洛谷試煉場 洛谷新手村 迴圈!迴圈!迴圈!

1.p1008 三連擊 題目鏈結 include using namespace std int main 2.p1035 級數求和 題目鏈結 include using namespace std int main cout 1 0 3.p1423小玉在游泳 題目鏈結 include using ...

洛谷P3965 迴圈格 費用流

乙個完美的迴圈格是這樣定義的 對於任意乙個起始位置,你都可以沿著箭頭最終回到起始位置。如果乙個迴圈格不滿足完美,你可以隨意修改任意乙個元素的箭頭直到完美。例如下圖,左邊不是乙個完美的迴圈格,因為只有從 1,1 1,2 2,0 2,3 1,1 1,2 2,0 2,3 1,1 1,2 2 0 2,3 出...

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...