CODEVS T 2969 角谷猜想

2022-04-06 05:32:05 字數 1305 閱讀 6781

時間限制: 1 s

空間限制: 32000 kb

題目等級 : ** gold

題解檢視執行結果

所謂角谷猜想,即給定乙個正整數 n,對 n 反覆進行下列兩種變換:

1)如果n是偶數,就除以2;

2)如果n是奇數,就乘以3加1。

最後的結果總是1。

我們把從 n 變換到 1 所需要進行的變換次數稱做 n 的變換長度,如數字 7 的變換為:

7-22-11-34-17-52-26-13-40-20-10-5-16-8-4-2-1

共進行了 16 次變換,因而 7 的變換長度為 16。

wish 現在對乙個給定區間內的最長變換長度比較感興趣,但是手算起來計算量太大,於是他又找到了參加資訊學競賽的你,你可以幫助他嗎?

輸入描述 input description

每個測試點包含多組資料,第一行乙個數 t,表示資料個數。

第二行至第 t+1 行,每行兩個數 a、b,表示求 a 和 b 之間數(包含 a、b)的最長變換長度。

輸出描述 output description

輸出格式

t 行,每行輸出對應輸入資料的各個區間的最長變換長度。

樣例輸入 sample input

21 7

9 20

樣例輸出 sample output

1620

資料範圍及提示 data size & hint

資料範圍

1 <= t <= 100

1 <= a, b <= 10^8

區間長度不超過 10^5

記憶化、注意邊界

沒寫returnwa半天zz啊

1 #include 2 #include 3

4using

namespace

std;56

#define ll long long

7#define max(a,b) (a>b?a:b)

8#define min(a,b) (a9 inline void read(ll &x)

1015 ll a,b,sum[1000000

];16

17ll dfs(ll now)

1825

else

return now&1 ? dfs(now*3+1)+1 :dfs(now>>1)+1;26

}2728int

presist()

2938

return0;

39}4041

int aptal=presist();

42int main()

2969 角谷猜想

2969角谷猜想 時間限制 1 s 空間限制 32000 kb 題目等級 gold 題解檢視執行結果 題目描述description 所謂角谷猜想,即給定乙個正整數 n,對 n 反覆進行下列兩種變換 1 如果n是偶數,就除以2 2 如果n是奇數,就乘以3加1。最後的結果總是1。我們把從 n 變換到 ...

codevs2969角谷猜想(記憶化搜尋 分塊)

所謂角谷猜想,即給定乙個正整數 n,對 n 反覆進行下列兩種變換 1 如果n是偶數,就除以2 2 如果n是奇數,就乘以3加1。最後的結果總是1。我們把從 n 變換到 1 所需要進行的變換次數稱做 n 的變換長度,如數字 7 的變換為 7 22 11 34 17 52 26 13 40 20 10 5...

驗證角谷猜想

total submission s 7305 accepted submission s 3767 problem description 數論中有許多猜想尚未解決,其中有乙個被稱為 角谷猜想 的問題,該問題在 五 六十年代的美國多個著名高校中曾風行一時,這個問題是這樣描述的 任何乙個大於一的自然...