輸入檔案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 走...