51Nod 1615 跳躍的傑克

2021-08-08 22:36:07 字數 1206 閱讀 5293

1615 跳躍的傑克

基準時間限制:1 秒 空間限制:131072 kb 分值: 80 難度:5級演算法題

傑克最近正在努力鍛鍊他的跳躍技能。當前他正站在x座標軸原點上。他想跳到座標(x,0)上,為了達到訓練效果,他決定首次跳躍的距離是1,之後每一次跳躍的距離將會比上一次跳躍的距離大1個單位。每一次跳躍,他可以選擇往左或者往右跳。他很好奇至少要經過多少次跳躍才能到達終點。

input

單組測試資料。

輸入資料只包含整數x(-10^9<=x<=10^9)。

output

輸出傑克到達終點所需要的最少的跳躍次數。
input示例

2
output示例

3

題目大意:從(x,0),每次跳躍跳躍距離+1,問至少條幾次。

題解:可以吧問題倒過來:從(0,0)開始,至少跳幾次跳到(x,0)。如果能夠不調向直接跳到目標點當然很簡單,主要是可以多次調整方向。其實畫一畫圖就可以發現:不管怎麼調整方向,起始點和目標點是不變的,也就是說明num=1+2+3……+ans>=x;那麼思考一下num-x的部分去哪了(num>x)。其實可以發現(num-x)%2==0,這也是判斷條件,為什麼?以為num-x是多餘的部分,既然是多餘的部分,那麼肯定會偏離x,然而最終停留在x,也就是跑遠了還會在回來,畫一畫圖就可以發現了,多餘的段一定會被「去"和「回」同時覆蓋,所以num-x一定是偶數。注意一定要特判n為負數和0點情況。

總結:當做不出來題時,畫一畫圖也是一種不錯的方法,說不定在動態模擬的過程中會發現題目暗藏的性質。

51Nod 1615跳躍的傑克(貪心)

題目 傑克最近正在努力鍛鍊他的跳躍技能。當前他正站在x座標軸原點上。他想跳到座標 x,0 上,為了達到訓練效果,他決定首次跳躍的距離是1,之後每一次跳躍的距離將會比上一次跳躍的距離大1個單位。每一次跳躍,他可以選擇往左或者往右跳。他很好奇至少要經過多少次跳躍才能到達終點。輸入單組測試資料。輸入資料只...

跳躍的傑克

傑克最近正在努力鍛鍊他的跳躍技能。當前他正站在 x座標軸原點上。他想跳到座標 x,0 上,為了達到訓練效果,他決定首次跳躍的距離是 1,之後每一次跳躍的距離將會比上一次跳躍的距離大 1個單位。每一次跳躍,他可以選擇往左或者往右跳。他很好奇至少要經過多少次跳躍才能到達終點。input 單組測試資料。輸...

51 nod 最高的獎勵

有n個任務,每個任務有乙個最晚結束時間以及乙個對應的獎勵。在結束時間之前完成該任務,就可以獲得對應的獎勵。完成每乙個任務所需的時間都是1個單位時間。有時候完成所有任務是不可能的,因為時間上可能會有衝突,這需要你來取捨。求能夠獲得的最高獎勵。input 第1行 乙個數n,表示任務的數量 2 n 500...