洛谷 P1635 跳躍

2022-04-06 03:31:48 字數 1905 閱讀 5964

noip即將迎來周年華誕。在這乙個春秋的歷程裡,noip領導全國oier,建設高效、穩定、快捷、開放的社會主義現代化oi。在新的一年裡,yzoj將再接再厲,積極探尋成長之路,更好地為廣大oier服務。

青蛙小c聽說noip要辦周年慶比賽,興沖沖得來到了z市,初始時他在座標x0處,小c是乙隻善於跳躍的青蛙,若當前他處在座標x處,每一次跳躍,他可以跳到4x+

34x+

3或8x+

78x+

7處,且由於體力原因,他最多能跳10000010

0000

次。根據z市的傳說,座標位置為100000000710

0000

0007

的整數倍的位置(如100000000710

0000

0007

、200000001420

0000

0014

)可以傳送到yzoj。小c想知道,最少跳幾次能傳送到yzoj。

輸入的第一行包含乙個整數x0表示青蛙的初始位置,保證x0在的範圍在[1,

1000000006][

1,10

0000

0006

]。輸出乙個整數,表示最少所需步數,若在10000010

0000

步內還無法傳送到yzo

jyzo

j,則輸出−1−

1。顯然,這一看就是一道數學題

那麼我們怎麼考慮呢?

如果你細心一點就會發現:4x

+3=2

∗(2x

+1)+

14x+

3=2∗

(2x+

1)+1

8x+7

=2∗(

2∗(2

x+1)

+1)+

18x+

7=2∗

(2∗(

2x+1

)+1)

+1那麼不就是說,只需要計算與2x+1有關的步數,然後推導普遍規律就行。

計算有幾次2x+1的過程太簡單,等會直接看**就行。下面分析處理結果的方法。

再跳回兩個式子:4x

+3=2

∗(2x

+1)+

14x+

3=2∗

(2x+

1)+1

8x+7

=2∗(

2∗(2

x+1)

+1)+

18x+

7=2∗

(2∗(

2x+1

)+1)

+1我們可以發現:最多的是由三個2x+1等構成(即8x+7),所以我們不妨考慮將結果先mod 3:

然後歸納一下就行了,具體看**:

#includeusing namespace std; 

const int mod=1000000007;//定義mod

int ans;

int search(int x)//遞迴部分,ac

int y=((x%mod)*2+1)%mod;

ans++;

if(y==0)//等於0就是達成了整數倍

printf("%d",ans/3);

return 0;

} else

printf("%d",ans/3+1);

return 0;

} }else

search(y);//繼續走

return 0;

}int main()

if(ans%3==0)

printf("%d",ans/3);

else

return 0;

} }

printf("-1\n"); */

search(m);

return 0;

}

洛谷 P1635 跳躍

noip即將迎來周年華誕。在這乙個春秋的歷程裡,noip領導全國oier,建設高效 穩定 快捷 開放的社會主義現代化oi。在新的一年裡,yzoj將再接再厲,積極探尋成長之路,更好地為廣大oier服務。青蛙小c聽說noip要辦周年慶比賽,興沖沖得來到了z市,初始時他在座標x0處,小c是乙隻善於跳躍的青...

洛谷P5049 洛谷P5022 題解 旅行

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

洛谷練習P2279 P1346

2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...