ZUST 2019111 悲傷數字(思維 二叉樹)

2021-10-01 13:39:14 字數 1091 閱讀 6440

【題意】

用4,9按大小構造數字序列a為[4,9,44,49,94,99....],定義499為1z,輸入k(1<=k<=1e8),輸出第kz個數字。

比如k=1,輸出為第499個數字,99994944。

【題解】

因為只有4,9兩個數字,我們很容易聯想到0,1,從而想到二叉樹。我們這樣構造二叉樹,結點x的左兒子的編號為0x,右兒子的編號為1x,以此類推,我們可以得到整棵樹的編號。我們令根結點為1,那麼就可以通過編號的奇偶性判斷它是父親的左兒子還是右兒子,並且得到父親的編號。所以,我們可以輕而易舉的從兒子推到根結點的第乙個兒子為止,輸出這條路徑即可。

【**】

#include using namespace std;

typedef long long ll;

int ans[105];

int main()

return 0;

}

【題面】

description

眾所周知,每一年的下半學期是xcpc區域賽比較密集的時候,眾多acmers在這個時候終於可以出去比賽惹。zzl帶著他的隊友們去了冰城,然後發生了一系列悲傷的故事,從此這座城市又多了三個悲傷的人。。。zzl回到學校後看到4,9這兩個數字就會想起那些悲傷的故事,於是他把4,9這兩個數字稱為悲傷數字。乙個整數是悲傷數字,當且僅當它的十進位制表示只包含悲傷數字。定義499為1z。現在讓你給出從小到大第kz個悲傷數字。

第1個的悲傷數字是4,第2個的悲傷數字是9,第三個的悲傷數字是44。

input

輸入包含多組,每行為一組資料,包含乙個整數k(1 \leq k \leq 10^8)k(1≤k≤108)。

檔案結束為0,單獨佔一行,無需對應輸出。

output

每組輸出僅一行,為第kz個的悲傷數字,行末無空格。

sample input 1 

1
sample output 1

99994944
hint

樣例解釋:99994944為從小到大第499個悲傷數字

輸入輸出較大,請注意輸入輸出效率

source

zust - 出題組:朱展樂

Dropping Balls(滿二叉樹,思維)

uva679 小球下落 dropping balls 題目翻譯 許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成乙個新滿二叉樹,每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個節點的布林值。最初,所有的節點都是 ...

二叉樹(簡單思維題)

如上圖所示,由正整數1,2,3 組成了一顆二叉樹。我們已知這個二樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點 都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹中共有4個結...

zcmu 4928 二叉樹(思維轉換)

如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹中共有4個...