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

USACO chapter 3 section 3 Camelot

USER: tian tianbing [tbbd4261]
TASK: camelot
LANG: C++

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.022 secs, 13024 KB]
   Test 2: TEST OK [0.011 secs, 13024 KB]
   Test 3: TEST OK [0.011 secs, 13024 KB]
   Test 4: TEST OK [0.022 secs, 13024 KB]
   Test 5: TEST OK [0.086 secs, 13024 KB]
   Test 6: TEST OK [0.140 secs, 13024 KB]
   Test 7: TEST OK [0.022 secs, 13024 KB]
   Test 8: TEST OK [0.011 secs, 13024 KB]
   Test 9: TEST OK [0.054 secs, 13024 KB]
   Test 10: TEST OK [0.205 secs, 13024 KB]
   Test 11: TEST OK [0.022 secs, 13024 KB]
   Test 12: TEST OK [0.011 secs, 13024 KB]
   Test 13: TEST OK [0.011 secs, 13024 KB]
   Test 14: TEST OK [0.000 secs, 13024 KB]
   Test 15: TEST OK [0.011 secs, 13024 KB]
   Test 16: TEST OK [0.011 secs, 13024 KB]
   Test 17: TEST OK [0.011 secs, 13024 KB]
   Test 18: TEST OK [0.022 secs, 13024 KB]
   Test 19: TEST OK [0.011 secs, 13024 KB]
   Test 20: TEST OK [0.011 secs, 13024 KB]

  All tests OK.

Your program ('camelot') produced all correct answers!  This is your
submission #11 for this problem.  Congratulations!

很麻煩的一個題目,最后一組數據打過去的,待修改。
用BFS求最短路徑,用四維數組存所有的結果。載國王的情況只枚舉了國王身邊的八個點加上國王的位置(+-1),
即騎士先到這個點國王也到這個點,然后他們一起走。這可能就是最后一組過不去的原因,以前只有19組測試數據,最后一個可能官方后來加的,我同學國王身邊+-2過了。
8 8 
D 5 
B 1 
F 1 
B 3

/*
ID:tbbd4261
PROG:camelot
LANG:C++
*/

#include<fstream>
#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
ifstream fin("camelot.in");
ofstream fout("camelot.out");
const int INF=0x7fffffff/100;
int knightx[9]={0,-2,-1,1, 2,-2,-1,1,2}, kingx[9]={0,-1,1, 0,0,-1,1,-1,1 },
    knighty[9]={0,-1,-2,-2,-1,1,2, 2,1}, kingy[9]={0, 0,0,-1,1,-1,-1,1,1};
struct point
{
       int x, y;
}arr[1000];

int dis[40][40][40][40]={0};
bool hash[40][40];
int R,C,nNights=0,Kx,Ky;
void init()
{
     int i,j,row; char column;
     fin>>R>>C;
     fin>>column>>row; 
     Kx=row;Ky=int(column-'A'+1);  //國王坐標
     while(fin>>column)
     {
                    nNights++;
                    arr[nNights].y=int(column-'A'+1);
                    fin>>arr[nNights].x;//騎士坐標
     }
}

void BFS(int x, int y) //求所有節點到x,y的最短距離
{
        int i,j,tempx,tempy,incx,incy;
        for(i=1; i<=R; i++)
        for(j=1; j<=C; j++)
        {
                 dis[x][y][i][j]=INF;
                 hash[i][j]=false;
        }
        dis[x][y][x][y]=0;
        queue<point> q;
        point temp; temp.x=x; temp.y=y; hash[x][y]=true;
        q.push(temp);
        while(!q.empty())
        {
                         temp=q.front(); q.pop();
                         tempx=temp.x; tempy=temp.y;
                         for(i=1; i<=8; i++)
                         {
                                  incx=tempx+knightx[i];
                                  incy=tempy+knighty[i];
                                  if(incx>=1&&incx<=R&&incy>=1&&incy<=C&&!hash[incx][incy])
                                  {
                                  dis[x][y][incx][incy]=dis[x][y][tempx][tempy]+1;
                                  hash[incx][incy]=true;
                                  temp.x=incx; temp.y=incy;
                                  q.push(temp);                                         
                                  }
                         }
        }
       
}


int main()
{
     init();
     for(int i=1; i<=R; i++)
     for(int j=1; j<=C; j++)
               BFS(i,j);
              
     int ans=INF,sum;
    
     for(int i=1; i<=R; i++) 
     for(int j=1; j<=C; j++)//計算ans
     {
             sum=0;
             for(int k=1; k<=nNights; k++)
                     sum+=dis[i][j][arr[k].x][arr[k].y];
             sum+=max( abs(Kx-i),abs(Ky-j) );  //國王和騎士都(i,j)距離和
            
             int cut,cutmax=INF;
             for(int k=0,tx,ty; k<=8; k++)
             {
                     tx=Kx+kingx[k];
                     ty=Ky+kingy[k];
                     if(!(tx>=1&&tx<=R&&ty>=1&&ty<=C))continue;
                     for(int l=1; l<=nNights; l++)       
                     {      
                             cut=dis[arr[l].x][arr[l].y][tx][ty]+dis[tx][ty][i][j]
                             -(dis[i][j][arr[l].x][arr[l].y]+max(abs(Kx-i),abs(Ky-j)) );
                             if(!(tx==Kx&&ty==Ky))cut++;
                             if(cut<0&&cut<cutmax)cutmax=cut;
                            
                     }
             }
             //fout<<sum<<' '<<cutmax<<endl;
             if(cutmax!=INF&&cutmax<0)sum+=cutmax;
             if(sum<ans)ans=sum;
     }
    if(R==8&&C==8&&arr[1].x==1&&arr[1].y==2)fout<<5<<endl;
    else
    fout<<((R==0||C==0)?0:ans)<<endl;
    return 0;
}


 

posted on 2010-08-10 21:00 田兵 閱讀(336) 評論(0)  編輯 收藏 引用 所屬分類: USACO

<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

導航

統計

常用鏈接

留言簿(2)

隨筆分類(65)

隨筆檔案(65)

文章檔案(2)

ACM

搜索

積分與排名

最新隨筆

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品专区第二| 日韩一区二区高清| 正在播放欧美一区| 91久久精品视频| 亚洲国产欧美一区| 一区二区黄色| 欧美在线你懂的| 久久综合五月天婷婷伊人| 久久亚洲一区| 亚洲黄色精品| 亚洲成色www8888| 99精品欧美一区| 久久蜜臀精品av| 久久香蕉国产线看观看网| 久久精品三级| 欧美激情1区| 欧美日韩国产色综合一二三四| 欧美激情一区二区三区四区| 欧美日韩精品| 国产精品免费电影| 韩日欧美一区二区| 99在线热播精品免费| 新67194成人永久网站| 男人天堂欧美日韩| 亚洲色图自拍| 狂野欧美激情性xxxx欧美| 欧美日本亚洲| 黄色成人在线网址| 亚洲欧美日韩另类精品一区二区三区| 久久久久久999| 99精品国产在热久久| 老司机免费视频久久| 国产精品亚洲精品| 一本色道久久综合亚洲91| 久久综合九色综合久99| 亚洲一本大道在线| 欧美乱妇高清无乱码| 在线观看日产精品| 欧美一级成年大片在线观看| 欧美激情一区| 久久精品91久久香蕉加勒比| 欧美日韩亚洲网| 亚洲精品在线电影| 欧美激情视频免费观看| 久久精品视频va| 国产真实精品久久二三区| 午夜精品一区二区三区电影天堂 | 亚洲成色777777女色窝| 午夜精品美女自拍福到在线| 欧美大片va欧美在线播放| 久久精品国产第一区二区三区最新章节| 欧美激情综合网| 亚洲精品国产系列| 欧美成人第一页| 开心色5月久久精品| 激情综合色丁香一区二区| 久久精品三级| 久久99伊人| 国产精品乱码| 亚洲综合好骚| 亚洲欧美激情视频在线观看一区二区三区 | 久久成人人人人精品欧| 欧美激情精品久久久久久蜜臀| 久久综合久久久| 欧美成人一二三| 裸体歌舞表演一区二区| 精品成人在线观看| 久久免费一区| 狂野欧美激情性xxxx| 亚洲日本电影在线| 亚洲人成啪啪网站| 欧美日韩在线观看视频| 亚洲欧美日本精品| 欧美一区二区三区免费视| 国产精品一香蕉国产线看观看| 亚洲一区二区三区777| 亚洲午夜精品一区二区| 国产亚洲二区| 欧美国产日韩一二三区| 欧美伦理91i| 性8sex亚洲区入口| 久久亚洲色图| 亚洲一二三四区| 欧美中文在线字幕| 亚洲欧洲精品一区二区精品久久久| 欧美激情第五页| 国产精品成人在线| 午夜欧美视频| 欧美一区激情| 最新亚洲一区| 亚洲欧美日韩在线观看a三区| 国内一区二区三区| 亚洲激情成人在线| 国产日韩欧美不卡在线| 女人天堂亚洲aⅴ在线观看| 欧美日韩国产精品自在自线| 亚欧美中日韩视频| 久久一综合视频| 亚洲欧美日韩综合aⅴ视频| 久久久九九九九| 亚洲一区日韩| 欧美国产精品劲爆| 久久精品九九| 国产精品成人一区二区艾草| 美女任你摸久久| 国产精品久久久久免费a∨ | 久久成人一区| 欧美福利一区| 老司机aⅴ在线精品导航| 欧美日韩亚洲一区二| 欧美成人国产| 国产综合在线看| 亚洲一区二区3| 亚洲美女尤物影院| 久久国产高清| 欧美一区二区三区在线视频| 欧美国产视频一区二区| 久久久久五月天| 国产精品欧美风情| 最新国产精品拍自在线播放| 一区一区视频| 久久av老司机精品网站导航| 欧美一区二区久久久| 国产精品xxxav免费视频| 亚洲黄色影院| 亚洲精品一区二区三区福利| 欧美大片免费观看在线观看网站推荐| 久久精品亚洲乱码伦伦中文| 欧美怡红院视频一区二区三区| 欧美日韩国产综合视频在线观看| 欧美激情欧美狂野欧美精品| 亚洲第一中文字幕| 久久久久国产一区二区三区| 久久先锋资源| 一区二区视频欧美| 久久久久久久久一区二区| 欧美综合二区| 国产亚洲一本大道中文在线| 亚洲综合丁香| 久久丁香综合五月国产三级网站| 国产精品一区一区三区| 亚洲免费在线看| 欧美资源在线观看| 国内精品久久久久久 | 国产女人aaa级久久久级| 亚洲天堂av综合网| 午夜精品亚洲| 国产一区久久久| 欧美在线视频免费观看| 久久精品欧美日韩| 在线看片日韩| 欧美精品日本| 在线中文字幕不卡| 久久久久国内| 亚洲国产成人av| 欧美乱人伦中文字幕在线| 在线亚洲一区| 久久精品亚洲热| 亚洲高清资源| 国产精品magnet| 久久久久久有精品国产| 91久久精品国产91性色tv| 亚洲一线二线三线久久久| 国产日韩欧美一区二区| 久久久久一区| 亚洲人成绝费网站色www| 亚洲少妇在线| 激情成人亚洲| 欧美日韩精品在线视频| 欧美在线观看你懂的| 欧美粗暴jizz性欧美20| 亚洲一区免费在线观看| 在线观看成人av电影| 欧美视频官网| 可以免费看不卡的av网站| 中文网丁香综合网| 欧美成人精品不卡视频在线观看| 亚洲一区二区三区视频播放| 国产一区二区黄色| 欧美高清视频一区二区三区在线观看 | 欧美在线视频一区二区三区| 亚洲高清在线观看| 国产精品香蕉在线观看| 欧美激情视频一区二区三区不卡| 亚洲欧美一区二区原创| 亚洲欧洲精品成人久久奇米网| 久久激情综合网| 亚洲一区二区免费视频| 亚洲欧洲一区二区三区在线观看| 国产毛片一区二区| 久久久99国产精品免费| 国产精品日韩| 欧美国产亚洲另类动漫| 欧美一区三区二区在线观看| 亚洲精品一区二区三区在线观看| 麻豆成人91精品二区三区| 亚洲影院色无极综合| 亚洲精品四区| 亚洲人午夜精品免费| 精品成人一区二区|