一下迭代序列定義在整數集合上:
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)。
對於每次詢問,你需要計算出最多的運算次數是多少。為了節約輸出時間,你只需要輸出所有詢問的答案之和 。
3123
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程式 程式 一堆 程序 程式的執行的過程 程序的概念起源於作業系統,程序是作業系統罪核心的概念,作業系統其它所有的概念都是圍繞程序來的 作業系統理論 作業系統是什麼?作業系統是乙個協調 管理 控制計算機...