青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

HDOJ 1175 連連看 廣度優(yōu)先搜索

Problem Description
“連連看”相信很多人都玩過。沒玩過也沒關(guān)系,下面我給大家介紹一下游戲規(guī)則:在一個棋盤中,放了很多的棋子。如果某兩個相同的棋子,可以通過一條線連起來(這條線不能經(jīng)過其它棋子),而且線的轉(zhuǎn)折次數(shù)不超過兩次,那么這兩個棋子就可以在棋盤上消去。不好意思,由于我以前沒有玩過連連看,咨詢了同學(xué)的意見,連線不能從外面繞過去的,但事實(shí)上這是錯的。現(xiàn)在已經(jīng)釀成大禍,就只能將錯就錯了,連線不能從外圍繞過。
玩家鼠標(biāo)先后點(diǎn)擊兩塊棋子,試圖將他們消去,然后游戲的后臺判斷這兩個方格能不能消去。現(xiàn)在你的任務(wù)就是寫這個后臺程序。
 

Input
輸入數(shù)據(jù)有多組。每組數(shù)據(jù)的第一行有兩個正整數(shù)n,m(0<n<=1000,0<m<1000),分別表示棋盤的行數(shù)與列數(shù)。在接下來的n行中,每行有m個非負(fù)整數(shù)描述棋盤的方格分布。0表示這個位置沒有棋子,正整數(shù)表示棋子的類型。接下來的一行是一個正整數(shù)q(0<q<50),表示下面有q次詢問。在接下來的q行里,每行有四個正整數(shù)x1,y1,x2,y2,表示詢問第x1行y1列的棋子與第x2行y2列的棋子能不能消去。n=0,m=0時,輸入結(jié)束。
注意:詢問之間無先后關(guān)系,都是針對當(dāng)前狀態(tài)的!
 

Output
每一組輸入數(shù)據(jù)對應(yīng)一行輸出。如果能消去則輸出"YES",不能則輸出"NO"。
 

Sample Input
3 4
1 2 3 4
0 0 0 0
4 3 2 1
4
1 1 3 4
1 1 2 4
1 1 3 3
2 1 2 4
3 4
0 1 4 3
0 2 4 1
0 0 0 0
2
1 1 2 4
1 3 2 3
0 0
 

Sample Output
YES
NO
NO
NO
NO
YES
    一看題目就知道是用bfs,但是要注意幾個問題:bfs是按層次進(jìn)行搜索,得到的從起點(diǎn)到終點(diǎn)的路徑(如果存在的話)是最短的。題目中說這條路徑最多只能轉(zhuǎn)向2次,有一些情況可能得到了從起點(diǎn)到終點(diǎn)的路徑,但是它的轉(zhuǎn)向次數(shù)已經(jīng)超過的2次,這樣這條路徑就不符合要求,得重新找一條。一個一般的結(jié)論:如果某一點(diǎn)記錄的轉(zhuǎn)向次數(shù)大于當(dāng)前路徑在該點(diǎn)的轉(zhuǎn)向次數(shù),那么還能從該點(diǎn)再發(fā)出一條路徑來查找。可以用一個二維數(shù)組hash[n][n]來狀態(tài)判重,這個數(shù)組里存的數(shù)值就是某條路徑在該點(diǎn)的轉(zhuǎn)向次數(shù),if(hash[x][y]>=now.turn) q.push(now);還有個需要注意的就是能連上的點(diǎn)并沒有從圖中消失,所以每條查詢語句都是獨(dú)立的。(我把它當(dāng)成真正的連連看來做,結(jié)果WA了10次)
 1 #include <iostream>
 2 #include <queue>
 3 using namespace std;
 4 
 5 const int N = 1001;
 6 bool flag;
 7 int n,m,sx,sy,ex,ey;
 8 int hash[N][N],map[N][N];
 9 int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
10 struct node{
11     int x,y,turn,d;
12 }start;
13 queue<node> q;
14 
15 inline bool in(const node &p){
16     if(p.x<0 || p.y<0 || p.x>=|| p.y>=m)
17         return false;
18     return true;
19 }
20 void bfs(){
21     node now,t;
22     while(!q.empty()){
23         now=q.front(),q.pop();
24         if(now.x==ex && now.y==ey && now.turn<=2){
25             flag=true;
26             return;
27         }
28         for(int i=0;i<4;i++){
29             t.x=now.x+dir[i][0],t.y=now.y+dir[i][1];
30             if(now.d==i)
31                 t.turn=now.turn,t.d=now.d;
32             else
33                 t.turn=now.turn+1,t.d=i;
34             if(in(t) && (map[t.x][t.y]==0||t.x==ex&&t.y==ey) && hash[t.x][t.y]>=t.turn)
35                 hash[t.x][t.y]=t.turn,q.push(t);
36         }
37     }
38 }
39 int main(){
40     int i,j,t;
41     while(scanf("%d %d",&n,&m),n||m){
42         for(i=0;i<n;i++)
43             for(j=0;j<m;j++) scanf("%d",&map[i][j]);
44         scanf("%d",&t);
45         while(t--){
46             scanf("%d %d %d %d",&sx,&sy,&ex,&ey);
47             sx--,sy--,ex--,ey--;
48             if((map[sx][sy]!=map[ex][ey]) || map[sx][sy]==0 || map[ex][ey]==0 || (sx==ex&&sy==ey)){
49                 puts("NO");
50                 continue;
51             }
52             for(i=0;i<n;i++)
53                 for(j=0;j<m;j++) hash[i][j]=11;
54             while(!q.empty()) q.pop();
55             for(i=0;i<4;i++){
56                 start.x=sx,start.y=sy,start.turn=0,start.d=i;
57                 q.push(start);
58             }
59             flag=false,hash[sx][sy]=0;
60             bfs();
61             puts(flag ? "YES":"NO");
62         }
63     }
64     return 0;
65 }

posted on 2009-04-29 21:47 極限定律 閱讀(3704) 評論(3)  編輯 收藏 引用 所屬分類: ACM/ICPC

評論

# re: HDOJ 1175 連連看 廣度優(yōu)先搜索 2009-10-21 00:27 Tennie

呃~~光憑這個流量量我就要膜拜下~~  回復(fù)  更多評論   

# re: HDOJ 1175 連連看 廣度優(yōu)先搜索 2010-07-23 21:40 小貝

搞ACM有沒前途。請教博主。  回復(fù)  更多評論   

# re: HDOJ 1175 連連看 廣度優(yōu)先搜索 2013-12-09 17:59 wuxinlilei

@小貝
不能功利,獲獎是很難的,但是對于編程能力的提高和知識的積累是很有用的  回復(fù)  更多評論   

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(10)

隨筆分類

隨筆檔案

友情鏈接

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲靠逼com| 亚洲夜间福利| 91久久久亚洲精品| 欧美理论电影在线观看| 久久精品国产第一区二区三区最新章节 | 亚洲国产欧美在线| 久久久久久夜| 亚洲与欧洲av电影| 黄色影院成人| 红桃视频国产一区| 国产亚洲精品aa| 国产精品综合视频| 国产伦精品一区二区三区视频孕妇| 欧美日韩成人一区二区| 欧美成人a视频| 欧美国产综合一区二区| 欧美国产高潮xxxx1819| 欧美高清不卡在线| 欧美日韩国产另类不卡| 欧美日韩国产黄| 久久综合九色| 亚洲欧美日韩国产一区二区三区| 亚洲尤物在线| 午夜精品久久| 久久久久国内| 欧美成人亚洲成人| 欧美日韩1080p| 国产精品美女黄网| 国产午夜亚洲精品理论片色戒| 欧美三级第一页| 欧美日韩在线一二三| 久久综合中文字幕| 欧美日韩午夜精品| 国产欧美精品| ●精品国产综合乱码久久久久 | 在线看欧美日韩| 亚洲国产精品ⅴa在线观看| 亚洲欧洲一区二区三区| 亚洲午夜黄色| 老司机精品视频网站| 欧美日韩一区在线观看| 免费不卡亚洲欧美| 亚洲精品自在久久| 欧美中文字幕不卡| 欧美剧在线观看| 国产欧美一区二区精品忘忧草| 国产有码一区二区| 日韩视频中午一区| 久久精品亚洲一区二区三区浴池| 欧美成人激情在线| 亚洲图片欧美一区| 欧美 日韩 国产在线| 国产精品亚洲精品| 亚洲精品免费电影| 一区二区三区视频在线播放| 久久国产精品一区二区三区四区| 性欧美长视频| 久久久久久久久岛国免费| 亚洲国产成人tv| 亚欧成人精品| 欧美三级小说| 亚洲国产精品va在线看黑人| 午夜精品网站| 亚洲精品欧美专区| 免费久久99精品国产自在现线| 国产欧美一区二区三区久久 | 麻豆免费精品视频| 国产欧美日韩综合一区在线播放| 91久久在线| 亚洲综合国产| 亚洲精品色婷婷福利天堂| 久久久久亚洲综合| 国产日韩在线看片| 欧美一区二区精品在线| 日韩网站在线观看| 欧美成年人视频| 精品电影在线观看| 久久精品人人做人人爽电影蜜月| 亚洲视频999| 欧美午夜一区二区三区免费大片 | 久久午夜电影| 国产精品久久中文| 亚洲国产成人在线视频| 老司机67194精品线观看| 亚洲欧美久久久久一区二区三区| 欧美日韩一区三区| 亚洲综合视频一区| 亚洲视频中文字幕| 国产精品手机视频| 久久大逼视频| 欧美在线播放一区二区| 国产原创一区二区| 欧美尤物巨大精品爽| 久久高清免费观看| 蜜臀久久99精品久久久画质超高清 | 国产日韩欧美综合一区| 欧美综合国产| 久久免费精品视频| 亚洲高清不卡在线| 亚洲黄色成人久久久| 欧美日韩国产黄| 国内成+人亚洲| 麻豆久久精品| 欧美黄色免费| 亚洲一区国产精品| 亚洲欧美日韩区| 精品999在线播放| 亚洲国产欧美另类丝袜| 欧美三级在线播放| 久久久久91| 欧美成人四级电影| 亚洲一区在线免费| 性8sex亚洲区入口| 91久久国产综合久久91精品网站| 亚洲日本中文| 国产欧美日韩不卡| 欧美国产一区在线| 国产精品久久久久久影视| 久久国产福利国产秒拍| 欧美chengren| 久久国产夜色精品鲁鲁99| 久久一区精品| 亚洲欧美视频在线观看视频| 久久阴道视频| 亚洲综合视频网| 蜜桃av一区| 久久电影一区| 国产精品爱久久久久久久| 欧美jizz19hd性欧美| 国产精品久久777777毛茸茸| 蜜桃av一区二区三区| 国产精品久久一级| 欧美在线三级| 欧美日韩中文精品| 一区二区激情视频| 91久久精品国产91久久| 午夜精品福利一区二区蜜股av| 最新高清无码专区| 日韩一级在线观看| 精品91免费| 日韩亚洲欧美高清| 亚洲国产精品va在线看黑人| 国产真实乱子伦精品视频| 亚洲欧洲免费视频| 91久久线看在观草草青青| 午夜伦欧美伦电影理论片| 亚洲少妇一区| 欧美久色视频| 亚洲经典在线| 亚洲人成小说网站色在线| 夜夜嗨av一区二区三区免费区 | 久久综合久久综合这里只有精品| 欧美三级日韩三级国产三级| 国产亚洲视频在线| 亚洲网友自拍| 9色精品在线| 欧美成人精品| 欧美激情精品久久久久久变态 | 欧美成人黑人xx视频免费观看| 老司机一区二区三区| 国产自产女人91一区在线观看| 午夜精品视频一区| 影音先锋日韩精品| 中文亚洲免费| 午夜天堂精品久久久久 | 欧美不卡在线视频| 国模私拍视频一区| 久久精品国产96久久久香蕉| 久久久久久亚洲精品杨幂换脸| 国产一区二区精品久久| 久久大逼视频| 亚洲国产欧美日韩| 一区二区高清| 伊人精品视频| 国产精品九色蝌蚪自拍| 久久综合给合| 午夜在线一区二区| 亚洲国产你懂的| 久久久久久久综合日本| 一区二区三区高清在线| 一区二区三区在线观看国产| 欧美午夜精品一区| 欧美大片在线看| 久久精品视频在线看| 一区二区三区黄色| 欧美激情四色| 久久久久久久久久码影片| 一区二区三区视频在线播放| 亚洲福利久久| 韩国女主播一区二区三区| 欧美图区在线视频| 欧美成人性生活| 久久人91精品久久久久久不卡| 亚洲午夜小视频| 日韩午夜电影| 亚洲美女黄色片| 亚洲国产成人av在线| 欧美v日韩v国产v| 美女成人午夜| 乱人伦精品视频在线观看|