SDUT 3322 收索 打表

2021-07-05 08:50:21 字數 1053 閱讀 1112

一下迭代序列定義在整數集合上:

n = n/2 (n 是偶數

)n = n*3 + 1(n 是奇數

)應用以上規則,並且以數字13

開始我們得到一下序列:

13,40,20,10,5,16,8,4,2,1

可以看出這個以13

開始以1

結束的序列一共經過了

9次運算。雖然還沒有被證明

(collatz問題)

,但是人們認為在這個規則下,以任何數字開始都會以

1 結束。

以哪個不超過x

的正整數開始,能得到運算次數最多的序列?

注意:一旦序列開始,也就是從第二項開始,項是可以超過x的。

輸了乙個整數n

,接下來

n行,每行乙個整數

x (1 <=x<=1,000,000)。

對於每次詢問,你需要計算出最多的運算次數是多少。為了節約輸出時間,你只需要輸出所有詢問的答案之和 。

312

3

8

看到此題的優化方式首先反應的是打表,但是打表仍然不夠

思路: 邊打表邊收索.是為了減枝,並找到當前步數的最大值.其真正意義在於利用已經算出的結果來進行對其他結果的推導,實現了高效的運算。

#include#include#include#include#include#include#define ll long long

#define max 1000010

using namespace std;

ll dp[1000010],a[1000010];

inline void read(int& x)

ll dfs(ll i)

if(i<1000000)

if((i&1)==0)

if((i&1)==1)

}int main()

{ int n,k;

ll ma=0,m;

for(int i=1;i<=1000000;i++)

{a[i]=dfs(i);

if(ma

3 3 2 TCP報頭結構

16位源埠 16位目的埠 32位序號 32位確認序號 4位 資料偏移 6位保留ur gack psur stsy nfin 16位視窗大小 16位校驗和 16位緊急指標 選項 資料 每個tcp都包含源埠號和目標埠號,加上ip頭中的源ip和目的ip,唯一確定乙個tcp連線。有時,乙個ip位址和乙個埠號...

編譯移植appweb 3 3 2

一 配置及編譯 1 修改環境變數 在終端輸入以下命令 export cc arm toolname gcc exportar arm toolname ar export ld arm toolname ld export nm arm toolname nm exportstrip arm too...

Python 33(2)程序理論

一 什麼是程序 程序指的是乙個正在進行 執行的程式,程序是用來描述程式執行過程的虛擬概念 程序vs程式 程式 一堆 程序 程式的執行的過程 程序的概念起源於作業系統,程序是作業系統罪核心的概念,作業系統其它所有的概念都是圍繞程序來的 作業系統理論 作業系統是什麼?作業系統是乙個協調 管理 控制計算機...