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

posts - 14,  comments - 11,  trackbacks - 0
      bfs的好題目!
      開始想到用優(yōu)先隊(duì)列,無情的還是過了, 只不過時(shí)間用了2000ms多,差點(diǎn)就掛了~杯具的優(yōu)先
      后來一想,其實(shí)可以直接bfs, 有情的是意料之外的沒有出現(xiàn)TE,而是AC,徹底無語的是只用了500ms多!!!!
      大呼優(yōu)先之哀哉……
      至于bfs的做法如下:
            1,開始點(diǎn)進(jìn)棧
            2,開始點(diǎn)能直接到達(dá)(不花時(shí)間的)的所有的點(diǎn)進(jìn)棧
            3,分兩步
               3.1 開始點(diǎn)不能直接到達(dá)(要時(shí)間)的點(diǎn)進(jìn)棧
               3.2 將這個(gè)點(diǎn)能直接到達(dá)(不花時(shí)間的)的所有的點(diǎn)進(jìn)棧
               3.3 跳轉(zhuǎn)到3
           4 跳轉(zhuǎn)到1
         注:開始點(diǎn)為當(dāng)前出棧的第一個(gè)點(diǎn)
        不明白這個(gè)過程的可以看代碼(雖然代碼有點(diǎn)……,還可以進(jìn)一步簡(jiǎn)化, 以后不能老想著優(yōu)先了,誰優(yōu)先誰杯具,當(dāng)然不是說我們的廣大女同胞……)
  1 #include <iostream>
  2 #include <queue>
  3 using namespace std;
  4 struct node
  5 {
  6        int x, y, time;
  7        /*friend bool operator < (node a, node b)
  8        {
  9               return a.time > b.time;
 10        }*/
 11 };
 12 int n, m;
 13 int xi[8= {-1-101110-1};
 14 int yi[8= {01110-1-1-1};
 15 char map[1005][1005];
 16 bool vist[1005][1005];
 17 bool check(int dx, int dy)
 18 {
 19      if (dx >= 0 && dy >=0 && dx < n && dy < m) return true;
 20      return false;
 21 }
 22 queue <node> q;
 23 int bfs(node now, node end)
 24 {
 25     while (!q.empty())q.pop();
 26     now.time = 0;
 27     q.push(now);
 28     
 29     for (int i = 0; i < n; i++)
 30     for (int j = 0; j < m; j++)
 31         vist[i][j] = false;
 32     vist[now.x][now.y] = true;
 33     node next, tmp;
 34     bool flag = false;
 35     while (!q.empty())
 36     {
 37           now = q.front();
 38           tmp = now;
 39           if (now.x == end.x && now.y == end.y) return now.time;
 40           q.pop();
 41           flag = false;
 42           while (1)
 43           {
 44                 next.x = tmp.x + xi[map[tmp.x][tmp.y]-'0'];
 45                 next.y = tmp.y + yi[map[tmp.x][tmp.y]-'0'];
 46                 if (check(next.x, next.y) && !vist[next.x][next.y])
 47                 {
 48                    if (next.x == end.x && next.y == end.y) return tmp.time;
 49                    next.time = tmp.time;
 50                    vist[next.x][next.y] = true;
 51                    q.push(next);
 52                    tmp = next;
 53                 }else break;
 54           }
 55           for (int i = 0; i < 8; i++)
 56           {
 57               next.x = now.x + xi[i];
 58               next.y = now.y + yi[i];
 59               if (check(next.x, next.y) && !vist[next.x][next.y])
 60               {
 61                  if (map[now.x][now.y] - '0' == i) next.time = now.time;
 62                  else next.time = now.time + 1;
 63                  if (next.x == end.x && next.y == end.y) return next.time;
 64                  vist[next.x][next.y] = true;
 65                  q.push(next);
 66                  tmp = next;
 67                  while (1)
 68                  {
 69                        next.x = tmp.x + xi[map[tmp.x][tmp.y]-'0'];
 70                        next.y = tmp.y + yi[map[tmp.x][tmp.y]-'0'];
 71                        if (check(next.x, next.y) && !vist[next.x][next.y])
 72                        {
 73                           if (next.x == end.x && next.y == end.y) return tmp.time;
 74                           next.time = tmp.time;
 75                           vist[next.x][next.y] = true;
 76                           q.push(next);
 77                           tmp = next;
 78                        }else break;
 79                   }
 80               }
 81           }
 82     }
 83     return 0;
 84 }
 85 int main()
 86 {
 87     while (scanf("%d%d"&n, &m) != EOF)
 88     {
 89           int i, j;
 90           for (i = 0; i < n; i++)
 91               scanf("%s", map[i]);
 92           int T;
 93           scanf("%d"&T);
 94           node now, end;
 95           for (i = 0; i < T; i++)
 96           {
 97               scanf("%d%d%d%d"&now.x, &now.y, &end.x, &end.y);
 98               now.time = 0;
 99               now.x --;
100               now.y --;
101               end.x --;
102               end.y --;
103               if (now.x == end.x && now.y == end.y)
104               {
105                  printf("0\n");
106               }else printf("%d\n", bfs(now, end));
107           }
108     }
109 return 0;
110 }
111 

posted on 2012-04-22 20:23 路修遠(yuǎn) 閱讀(1350) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 路修遠(yuǎn)
<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

轉(zhuǎn)載,請(qǐng)標(biāo)明出處!謝謝~~

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

文章檔案

搜索

  •  

最新評(píng)論

  • 1.?re: HDU 2433 最短路
  • @test
    的確這組數(shù)據(jù)應(yīng)該輸出20的
  • --YueYueZha
  • 2.?re: HDU 2433 最短路
  • 這方法應(yīng)該不對(duì)。 看下面這組數(shù)據(jù)
    4 4
    1 2
    2 3
    3 4
    2 4

    畫個(gè)圖,刪去最后一條邊 2 4 后的結(jié)果應(yīng)該是20,但是此方法的輸出是19
  • --test
  • 3.?re: HDU 2433 最短路
  • ans = ans + sum_u + sum_v - sum[u] - sum[v],
    這個(gè)公式不是很理解啊,不知道博主怎么想的啊,謝謝咯
  • --姜
  • 4.?re: HDU 2433 最短路
  • @attacker
    the i-th line is the new SUM after the i-th road is destroyed
  • --路修遠(yuǎn)
  • 5.?re: HDU 2433 最短路
  • 你這樣可以AC????刪除<U,V>不僅改變 u,v最短路啊、、、求解
  • --attacker

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            精品999成人| 亚洲国产精品va在看黑人| 久久久99爱| 亚洲一级在线观看| 中文无字幕一区二区三区| 亚洲精品日韩精品| 亚洲精品久久久久中文字幕欢迎你| 奶水喷射视频一区| 久久偷看各类wc女厕嘘嘘偷窃| 久久久久久亚洲精品中文字幕| 久久乐国产精品| 欧美黄色影院| 国产精品三区www17con| 国产欧美1区2区3区| 国产视频亚洲| 亚洲经典在线看| 亚洲一区二区成人在线观看| 欧美成年人视频网站| 蜜桃av综合| 欧美视频官网| 经典三级久久| 亚洲性图久久| 免费成人高清| 中文在线资源观看网站视频免费不卡| 久久福利精品| 欧美日韩系列| 在线观看精品| 午夜日韩在线观看| 嫩模写真一区二区三区三州| 亚洲毛片av在线| 久久久久成人网| 欧美日韩一区精品| 亚洲国产天堂久久综合网| 午夜亚洲伦理| 亚洲精品专区| 麻豆精品视频在线观看| 国产精品毛片| 99国产精品国产精品毛片| 久久国产精品久久久久久| 91久久国产自产拍夜夜嗨| 欧美亚洲网站| 国产精品日韩在线观看| 亚洲精品一区二区三区99| 国产精品magnet| 在线观看欧美精品| 亚洲欧美日韩天堂| 亚洲国产高清一区二区三区| 午夜日韩在线观看| 欧美日韩精品免费观看视频| 亚洲成色999久久网站| 午夜精品久久久久久久久| 亚洲国产精品久久久久秋霞不卡| 亚洲欧美日韩国产一区二区| 欧美日韩免费区域视频在线观看| 亚洲丰满在线| 欧美成年人视频网站| 久久久久国色av免费看影院 | 久久尤物视频| 国产一区二区精品久久99| 亚洲视频在线视频| 亚洲美女淫视频| 欧美日韩国产黄| 9国产精品视频| 亚洲国产片色| 欧美激情1区| 一区二区高清视频| 亚洲日本理论电影| 欧美日韩国产亚洲一区| 一本大道久久a久久精二百| 欧美激情综合色| 免费中文日韩| 日韩亚洲欧美成人一区| 农村妇女精品| 欧美不卡高清| 一区二区免费在线视频| 亚洲影视中文字幕| 亚洲午夜视频在线| 国产欧美精品| 久热re这里精品视频在线6| 久久五月激情| 一二三四社区欧美黄| 亚洲视频在线观看网站| 国产日韩精品一区二区| 久久久久久久一区二区三区| 久久久久久69| 夜夜爽99久久国产综合精品女不卡| 亚洲日本激情| 国产精品亚发布| 免费欧美日韩| 欧美日韩免费精品| 久久久免费av| 欧美日本韩国一区| 国产精品久久久久久久久久三级| 在线视频中文亚洲| 欧美一区二区播放| 曰本成人黄色| 亚洲美女免费视频| 国产午夜亚洲精品羞羞网站| 欧美高清视频一区| 国产精品久久久爽爽爽麻豆色哟哟| 久久久噜噜噜久噜久久| 欧美日韩亚洲一区二| 久久国产精品99久久久久久老狼| 麻豆国产va免费精品高清在线| 亚洲一区二区三区午夜| 久久久午夜视频| 亚洲欧美bt| 欧美国产大片| 久久精品夜色噜噜亚洲aⅴ| 欧美大片在线影院| 久久久国产精品一区| 欧美四级在线观看| 欧美激情在线观看| 国产日韩欧美高清免费| 99精品久久久| 亚洲日本一区二区三区| 小处雏高清一区二区三区| 99v久久综合狠狠综合久久| 久久www成人_看片免费不卡| 亚洲天堂成人| 欧美精品观看| 欧美高清视频| 91久久久一线二线三线品牌| 久久精品女人天堂| 久久aⅴ国产紧身牛仔裤| 国产精品99一区| 亚洲狼人综合| 在线亚洲国产精品网站| 女同一区二区| 欧美www视频| 影音先锋中文字幕一区| 午夜久久久久久| 亚洲欧美视频| 国产精品一二一区| 亚洲免费一区二区| 亚洲欧美中文在线视频| 国产精品黄色在线观看| 在线中文字幕一区| 亚洲制服丝袜在线| 国产精品嫩草久久久久| 一区二区三区国产| 亚洲永久网站| 欧美自拍偷拍| 久久久久99精品国产片| 国产一区二区三区久久久| 欧美在线播放视频| 久久久久国产精品一区| 久久综合给合久久狠狠色| 黑人极品videos精品欧美裸| 久久久999| 欧美激情1区2区| 亚洲激情视频网站| 欧美日本高清| 在线视频欧美日韩| 欧美在线|欧美| 欧美在线视频不卡| 久久精品二区三区| 在线免费观看视频一区| 老司机精品福利视频| 亚洲欧洲日本国产| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 欧美成人免费在线视频| 亚洲国产成人av| 亚洲一区二区三区在线看| 国产精品s色| 久久成人免费日本黄色| 欧美电影在线播放| 亚洲五月六月| 黄色国产精品| 欧美另类综合| 午夜久久久久| 亚洲精品视频在线观看免费| 午夜久久一区| 91久久极品少妇xxxxⅹ软件| 国产精品久久二区| 久久综合伊人77777麻豆| 亚洲六月丁香色婷婷综合久久| 欧美一区二区在线观看| 亚洲第一区在线观看| 欧美视频中文字幕在线| 久久精品综合一区| 99在线精品观看| 久久精品一二三区| 亚洲一级免费视频| 黄色日韩网站| 国产精品久久久久天堂| 久久只精品国产| 亚洲一区久久| 亚洲人成7777| 蜜臀a∨国产成人精品| 中文av一区二区| 亚洲国产精品久久久久秋霞影院 | 亚洲激情图片小说视频| 国产精品入口尤物| 欧美精品亚洲| 久久午夜色播影院免费高清| 亚洲在线视频| 日韩一区二区免费看| 欧美激情精品久久久久久大尺度| 久久超碰97中文字幕|