P2060 HNOI2006 馬步距離

2021-10-02 01:54:16 字數 1199 閱讀 9158

一道神奇的bfs

1.bfs(dfs):這次真的不是我懶,我也不知道dfs怎麼寫.

2.stl中的set或者map.

資料範圍非常大,直接bfs肯定是一片黑色(指tle,mle),直接貪心又有可能會出一些莫名其妙的問題,所以,大範圍貪心,小範圍bfs的思路就出現了(不要問我是怎麼出現的).

如這樣一張圖,要從紅點到藍點,可以先順著橙色點的路徑到綠色的框中(框的大小和形狀可以自由調整),到框中以後就可以bfs了,bfs時座標很大,所以可以用map(set)來判斷這個點是否走過.

#include

#define rap(i,first,last) for(int i=first;i<=last;++i)

using

namespace std;

const

int maxn=

500;

const

int move_x[9]

=;const

int move_y[9]

=;map

int,

int>

,int

>visit;

//int fx,fy,lx,ly;

intdis

(int x,

int y,

int x1,

int y1)

//我比較喜歡正方形

struct que//定義乙個結構體

que[maxn*maxn]

;void

write

(int answer)

//輸出answer

intmain()

else

answer++;}

que[1]

.x=fx;

que[1]

.y=fy;

que[1]

.sp=0;

visit[

make_pair

(fx,fy)]=

1;//visit去重

int head=

0,tail=1;

while

(++head<=tail)

//bfs的部分

}return0;

}

P2060 馬步距離(洛谷)

我們無論遇到什麼困難,都不要拖,微笑著面對他,戰勝拖延的最好方法就是面對拖延。今天又拖延了 早晨聽完老師講課,本想做一道題練練手的,結果因為懶,癱了一上午。最後在固定的刷題時間去面對了這道題,然後就a了 額,這個題的思路是很好想的,雖然資料大了這麼億點點,但不難看出是個廣搜吧 根本不是 廣搜根本不可...

bzoj1193 HNOI2006 馬步距離

在西洋棋和中國象棋中,馬的移動規則相同,都是走 日 字,我們將這種移動方式稱為馬步移動。如圖所示,從標號為 0 的點出發,可以經過一步馬步移動達到標號為 1 的點,經過兩步馬步移動達到標號為 2 的點。任給平面上的兩點 p 和 s 它們的座標分別為 xp,yp 和 xs,ys 其中,xp,yp,xs...

P2319 HNOI2006 超級英雄

題目描述 現在電視台有一種節目叫做超級英雄,大概的流程就是每位選手到台上回答主持人的幾個問題,然後根據回答問題的多少獲得不同數目的獎品或獎金。主持人問題準備了若干道題目,只有當選手正確回答一道題後,才能進入下一題,否則就被淘汰。為了增加節目的趣味性並適當降低難度,主持人總提供給選手幾個 錦囊妙計 比...