廣搜 藍橋杯之跳蚱蜢

2021-09-12 10:05:41 字數 910 閱讀 4084

原作:

注意:要求提交的是乙個整數,請不要填寫任何多餘內容或說明文字。

思想是bfs廣搜,為了節省記憶體,使用 int 來儲存資料,之前用的是string型別以及string型別的陣列存放資料,但是太容易超記憶體,而且判重過程算的太慢,看了這位大神的**,恍然大悟,可以用 bool 型別的陣列進行判重,s = 123456789當作陣列下標,以下是我稍作修改的**,可能看起來更簡潔吧! 

#include #include 

#define maxn 1000000000

using

namespace

std;

int s = 123456789,t = 876543219

;int di[4] = ,a[10

];bool

index[maxn];

int get_val(int *a)

return

sum;

}void

bfs()

for(int i = 0; i<4; i++)

index[num] = 1

; q.push(num);

qu.push(count+1

); }

swap(a[now],a[(now+di[i]+9)%9

]);

}q.pop();

qu.pop();

}}int

main()

posted @

2018-03-08 20:24

nikki_o3o 閱讀(

...)

編輯收藏

跳蚱蜢 藍橋杯

藍橋杯2017 c c a組第2題 題目 有9只盤子,排成1個圓圈。其中8只盤子內裝著8只蚱蜢,有乙個是空盤。我們把這些蚱蜢順時針編號為 1 8 每只蚱蜢都可以跳到相鄰的空盤中,也可以再用點力,越過乙個相鄰的蚱蜢跳到空盤中。請你計算一下,如果要使得蚱蜢們的隊形改為按照逆時針排列,並且保持空盤的位置不...

藍橋杯 跳蚱蜢 bfs

題意 有9只盤子,排成1個圓圈。其中8只盤子內裝著8只蚱蜢,有乙個是空盤。我們把這些蚱蜢順時針編號為 1 8 每只蚱蜢都可以跳到相鄰的空盤中,也可以再用點力,越過乙個相鄰的蚱蜢跳到空盤中。請你計算一下,如果要使得蚱蜢們的隊形改為按照逆時針排列,並且保持空盤的位置不變 也就是1 8換位,2 7換位,至...

藍橋杯 跳蚱蜢 Python

題目 如圖 p1.png 所示 有9只盤子,排成1個圓圈。其中8只盤子內裝著8只蚱蜢,有乙個是空盤。我們把這些蚱蜢順時針編號為 1 8。每只蚱蜢都可以跳到相鄰的空盤中,也可以再用點力,越過乙個相鄰的蚱蜢跳到空盤中。請你計算一下,如果要使得蚱蜢們的隊形改為按照逆時針排列,並且保持空盤的位置不變 也就是...