openjudge6043 哆啦A夢的時光機

2022-05-09 15:31:51 字數 1769 閱讀 1678

試題描述

哆啦a夢有乙個神奇的道具:時光機。坐著它,大雄和他的夥伴們能穿越時空,回到過去或者去到未來。

有一天,大雄和他的夥伴們想穿越時空進行探險,可是時光機卻出了一點故障,只能進行有限的時空穿越操作。大雄他們需要從現在出發,到達乙個目標時間點進行探險,結束後再返回到現在,他們希望盡可能減少時光機的操作次數,你能幫助他們嗎?

假設大雄和他的夥伴們出發的時間點(現在)為 \(s\)(\(0 < s < 1,000,000\)),希望到達的時間點(目標)為 \(t\)(\(0 < t < 1,000,000\)),已知時光機可以進行如下的時空穿越操作(\(x\) 為正整數):

可以從任意時刻 \(x\) 穿越到 \(x+1\) 或者 \(x-1\) 時刻

可以從任意時刻 \(x\) 穿越到 \(x*2\) 時刻

當 \(x\) 為偶數時,可以從 \(x\) 時刻穿越到 \(x/2\) 時刻

請問,大雄和他的夥伴們從 \(s\) 時刻出發,先到達 \(t\) 時刻,再回到 \(s\) 時刻最少需要多少次時空穿越操作?

輸入輸入的第乙個數是乙個正整數n,表示測試資料一共有n組(0 < n < 20)。

之後有n行,每一行包含兩個正整數s和t,表示出發和到達時間點。s≠t

輸出輸出包括 \(n\) 行,每一行乙個正整數,表示每組測試資料對應的最少時光機操作次數。

輸入示例

2

5 17

4 8

輸出示例
8

2

資料規模及約定

見「試題描述」和「輸入

題解hash + 雙向 bfs。

你需要相信這個題答案不會很大,搜到的狀態數也存得下。

#include #include #include #include #include #include using namespace std;

#define rep(i, s, t) for(int i = (s); i <= (t); i++)

#define dwn(i, s, t) for(int i = (s); i >= (t); i--)

int read()

while(isdigit(c))

return x * f;

}#define maxn 1000010

#define hmod 1000037

#define maxv 2147483647

#define ll long long

#define pii pair #define x first

#define y second

#define mp(x, y) make_pair(x, y)

struct hash

pii find(int x)

bool insert(int x, int v, int tp)

} h;

int q[maxn], hd, tl;

void bfs(int s, int t)

if(!(u & 1) && u > 0)

if((ll)u + 1 <= maxv)

if(u > 0)

} return ;

}int main()

return 0;

}

哆啦A夢大結局 哆啦大冒險

機器貓最後一集在日本播映.世界,真的不是美麗的 主角大雄突然從睡夢中驚醒,發現自己躺在病床上。原來,世界上從沒有過機器貓 也沒有萬能口袋 也沒有.總之,主角是由於極度的自閉症被送入精神病院的病人,已經在醫院住了八年,靜子是主角兒時暗戀的同伴,主角所有的記憶都停留在八年前的早晨。一切都是主角的幻想.哆...

webgame 哆啦大冒險

已經不知道是多久之前,很多神靈開啟通往這個名叫安多拉星的 門 來到這裡,賦予了安多拉星生命和智慧型。神把太陽拉近,讓星球氣溫變得舒適 接著他們在星球上塑起高山 鑿出海洋,並種下一棵充滿著魔力的魔樹來保護世界,各種動物植物相繼誕生。神最後教會充滿智慧型的精靈族各種知識 技能 魔法。幾經周折,神靈留下的...

Python學習 哆啦A夢的腦袋

剛開始畫這個是學校裡學python一開始就學的turtle畫圖,正好作業裡也有要畫乙個 圖,就畫了這個,我一開始是在草稿本子上一點一點的去想他要轉多少度角,然後goto 到哪個位置去畫鼻子眼睛,要正轉還是反轉,還挺麻煩的。定義乙個goto 函式,讓goto的時候不會留下痕跡,比較方便 def got...