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

superman

聚精會神搞建設(shè) 一心一意謀發(fā)展
posts - 190, comments - 17, trackbacks - 0, articles - 0
   :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

Section 3.3 - Camelot

Posted on 2009-06-04 13:50 superman 閱讀(255) 評論(0)  編輯 收藏 引用 所屬分類: USACO
  1 #include <queue>
  2 #include <iostream>
  3 
  4 using namespace std;
  5 
  6 struct point {
  7     int x, y;
  8     point operator+(const point &p) const {
  9         point np = { x + p.x, y + p.y };
 10         return np;
 11     }
 12 }   ;
 13 
 14 int r, c, knightsNum;
 15 point king, knights[30 * 26];
 16 
 17 const point kinghtDir[8= {
 18     {-2+1}, {-1+2}, {+1+2}, {+2+1},
 19     {+2-1}, {+1-2}, {-1-2}, {-2-1}
 20 }   ;
 21 
 22 inline bool inside(const point &p) {
 23     return p.x >= 0 && p.x < r && p.y >= 0 && p.y < c;
 24 }
 25 
 26 int dist[30][26][30][26];
 27 void spfa(const point &s)
 28 {
 29     for (int i = 0; i < r; i++)
 30     for (int j = 0; j < c; j++)
 31         dist[s.x][s.y][i][j] = INT_MAX;
 32     dist[s.x][s.y][s.x][s.y] = 0;
 33 
 34     queue<point> q;
 35     q.push(s);
 36 
 37     point cp;   //current point
 38     point np;   //next point
 39     while (q.empty() == false)
 40     {
 41         cp = q.front(); q.pop();
 42         for (int i = 0; i < 8; i++)
 43         {
 44             np = cp + kinghtDir[i];
 45             if (inside(np) && dist[s.x][s.y][cp.x][cp.y] + 1 < dist[s.x][s.y][np.x][np.y])
 46             {
 47                 dist[s.x][s.y][np.x][np.y] = dist[s.x][s.y][cp.x][cp.y] + 1;
 48                 q.push(np);
 49             }
 50         }
 51     }
 52 }
 53 
 54 int ans = INT_MAX;
 55 void gather(int tx, int ty)
 56 {
 57     int sum = 0;
 58     for (int i = 0; i < knightsNum; i++)
 59         sum += dist[knights[i].x][knights[i].y][tx][ty];
 60 
 61     if (sum > ans)
 62         return;
 63 
 64     for (int i = max(0, king.x - 2); i <= min(r - 1, king.x + 2); i++)
 65     for (int j = max(0, king.y - 2); j <= min(c - 1, king.y + 2); j++)
 66     {
 67         int tmp;
 68         if (i == king.x && j == king.y)
 69             tmp = 0;
 70         else
 71         {
 72             if (abs(i - king.x) == 1 || abs(j - king.y == 1))
 73                 tmp = 1;
 74             else
 75                 tmp = 2;
 76         }
 77         for (int k = 0; k < knightsNum; k++)
 78             if (dist[knights[k].x][knights[k].y][i][j] != INT_MAX &&
 79                 dist[i][j][tx][ty] != INT_MAX)
 80             ans <?= (sum - dist[knights[k].x][knights[k].y][tx][ty]
 81                 + tmp + dist[knights[k].x][knights[k].y][i][j] + dist[i][j][tx][ty]);
 82     }
 83 }
 84 
 85 int main()
 86 {
 87     freopen("camelot.in""r", stdin);
 88     freopen("camelot.out""w", stdout);
 89 
 90     cin >> r >> c;
 91 
 92     {
 93         char a; int b;
 94         cin >> a >> b;
 95         king.y = a - 'A', king.x = b - 1;
 96         while (cin >> a >> b)
 97         {
 98             knights[knightsNum].y = a - 'A';
 99             knights[knightsNum].x = b - 1;
100             knightsNum++;
101         }
102     }
103 
104     if (knightsNum == 0)
105     {
106         cout << 0 << endl;
107         return 0;
108     }
109 
110     for (int i = 0; i < r; i++)
111     for (int j = 0; j < c; j++)
112     {
113         point cp = { i, j };
114         spfa(cp);
115     }
116 
117     for (int i = 0; i < r; i++)
118     for (int j = 0; j < c; j++)
119         gather(i, j);
120 
121     cout << ans << endl;
122 
123     return 0;
124 }
125 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成人嫩草网站| 日韩一二三在线视频播| 老司机免费视频久久| 免费看亚洲片| 亚洲精品国产日韩| 亚洲一区二区三区777| 久久久午夜电影| 欧美日韩一卡二卡| 在线精品视频免费观看| 9色porny自拍视频一区二区| 欧美在线播放一区二区| 欧美高潮视频| 午夜精品久久久久久久99黑人| 欧美xart系列高清| 国产亚洲综合在线| 亚洲一区二区成人| 欧美福利电影网| 欧美一区二区三区视频在线观看 | 久久久久综合一区二区三区| 欧美国产高清| 欧美一区二区啪啪| 国产精品jvid在线观看蜜臀| 在线不卡中文字幕播放| 亚洲一区二区视频在线| 欧美激情一二区| 久久天堂国产精品| 国产日韩欧美一区二区| 亚洲少妇诱惑| 亚洲激情六月丁香| 久久嫩草精品久久久精品一| 国产亚洲欧洲一区高清在线观看| 中文国产亚洲喷潮| 最新中文字幕亚洲| 欧美大片免费| 亚洲精品美女在线| 亚洲福利av| 欧美jizz19hd性欧美| 黄色成人91| 久久久午夜视频| 欧美专区在线播放| 国内精品嫩模av私拍在线观看 | 伊大人香蕉综合8在线视| 午夜精品99久久免费| 亚洲永久免费视频| 国产精品嫩草99av在线| 欧美亚洲免费电影| 午夜欧美不卡精品aaaaa| 国产精品亚洲一区二区三区在线| 亚洲一区在线直播| 亚洲一区日韩在线| 国产亚洲网站| 欧美成人a∨高清免费观看| 久久国内精品视频| 亚洲国产成人久久| 亚洲人成网站999久久久综合| 欧美激情综合五月色丁香| av成人国产| 亚洲一区图片| 韩国av一区二区三区| 免费观看30秒视频久久| 欧美成人小视频| 亚洲图色在线| 欧美一级理论片| 最新亚洲视频| 亚洲一区在线看| 在线观看av一区| 亚洲精品日韩在线观看| 国产精品v片在线观看不卡| 欧美一区精品| 蜜桃久久av| 亚洲影院在线观看| 久久在线视频| 亚洲性av在线| 欧美一区二区视频在线观看2020| 亚洲黄一区二区三区| 夜夜精品视频| 一区二区三区在线观看视频| 亚洲欧洲美洲综合色网| 国产精品午夜久久| 欧美激情国产高清| 国产乱码精品一区二区三| 欧美大尺度在线观看| 欧美视频精品一区| 嫩草国产精品入口| 欧美四级伦理在线| 欧美不卡在线| 国产欧美精品一区二区三区介绍 | 久久亚洲不卡| 欧美午夜在线观看| 欧美高清视频在线观看| 国产麻豆成人精品| 亚洲美女黄色| 亚洲精品国产精品久久清纯直播| 国产伦精品一区二区三区在线观看 | 美腿丝袜亚洲色图| 性欧美大战久久久久久久免费观看| 久久亚洲国产精品一区二区| 亚洲一区二区在线免费观看| 久久女同互慰一区二区三区| 性做久久久久久免费观看欧美| 老牛影视一区二区三区| 久久精品亚洲乱码伦伦中文| 欧美日韩视频不卡| 亚洲福利在线看| 一区在线视频观看| 亚洲一区视频| 亚洲主播在线观看| 欧美日韩成人一区二区三区| 欧美福利一区二区三区| 经典三级久久| 欧美一级视频| 欧美在线视频不卡| 国产精品乱码人人做人人爱| 日韩一级在线观看| 一区二区三区四区国产精品| 欧美激情第9页| 亚洲欧洲精品一区| 亚洲乱码视频| 欧美国产视频一区二区| 亚洲国产另类 国产精品国产免费| 影音先锋久久| 美女黄色成人网| 亚洲电影在线免费观看| 亚洲精品中文字幕在线观看| 欧美成人精品三级在线观看| 亚洲高清视频在线观看| 91久久夜色精品国产九色| 欧美成人午夜激情视频| 亚洲国产成人精品女人久久久| 亚洲精品一级| 欧美日韩亚洲激情| 亚洲在线不卡| 久久久久久久久久久久久女国产乱 | 91久久精品国产91久久性色tv| 亚洲激情视频在线观看| 欧美国产激情| 99re热这里只有精品视频| 亚洲一品av免费观看| 国产精品乱人伦一区二区| 午夜伦欧美伦电影理论片| 久久综合导航| 亚洲精品乱码久久久久久| 欧美日韩在线播放| 欧美亚洲午夜视频在线观看| 欧美91大片| 亚洲视频免费在线观看| 国产视频一区在线| 男女av一区三区二区色多| 99re这里只有精品6| 欧美影院成人| 亚洲国产中文字幕在线观看| 欧美三日本三级三级在线播放| 亚洲欧美日韩精品| 亚洲国产精品va在线观看黑人| 亚洲一品av免费观看| 好吊视频一区二区三区四区| 欧美精品日韩三级| 欧美综合77777色婷婷| 亚洲激情自拍| 久久久999精品免费| 一本一本久久a久久精品牛牛影视| 国产精品视频一二三| 免费不卡在线观看| 亚洲欧美中文日韩在线| 91久久精品www人人做人人爽| 欧美资源在线观看| 一本色道久久加勒比88综合 | 久久人人97超碰精品888| 亚洲精品国偷自产在线99热| 久久九九久精品国产免费直播| 亚洲精品视频啊美女在线直播| 国产日韩亚洲欧美综合| 欧美三区视频| 欧美精品大片| 久久久久久久一区二区三区| 亚洲在线日韩| 亚洲六月丁香色婷婷综合久久| 久久久噜噜噜久久人人看| 亚洲在线免费| 亚洲社区在线观看| 亚洲乱码国产乱码精品精98午夜| 国产字幕视频一区二区| 国产精品亚洲激情| 欧美四级在线| 欧美日韩一区二区在线观看| 欧美国产日本高清在线| 久久天天躁狠狠躁夜夜爽蜜月| 欧美淫片网站| 欧美一级理论片| 性色av香蕉一区二区| 亚洲婷婷在线| 亚洲桃花岛网站| 99国产精品自拍| 亚洲美女精品一区| 亚洲精品一区二区三区樱花| 亚洲激情成人在线| 亚洲激情av| 亚洲国产一成人久久精品| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品免费久久久久久|