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