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

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!

很麻煩的一個(gè)題目,最后一組數(shù)據(jù)打過(guò)去的,待修改。
用BFS求最短路徑,用四維數(shù)組存所有的結(jié)果。載國(guó)王的情況只枚舉了國(guó)王身邊的八個(gè)點(diǎn)加上國(guó)王的位置(+-1),
即騎士先到這個(gè)點(diǎn)國(guó)王也到這個(gè)點(diǎn),然后他們一起走。這可能就是最后一組過(guò)不去的原因,以前只有19組測(cè)試數(shù)據(jù),最后一個(gè)可能官方后來(lái)加的,我同學(xué)國(guó)王身邊+-2過(guò)了。
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);  //國(guó)王坐標(biāo)
     while(fin>>column)
     {
                    nNights++;
                    arr[nNights].y=int(column-'A'+1);
                    fin>>arr[nNights].x;//騎士坐標(biāo)
     }
}

void BFS(int x, int y) //求所有節(jié)點(diǎn)到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++)//計(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) );  //國(guó)王和騎士都(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) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): USACO

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

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(2)

隨筆分類(lèi)(65)

隨筆檔案(65)

文章檔案(2)

ACM

搜索

積分與排名

最新隨筆

最新評(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>
            国产精品揄拍一区二区| 欧美成人免费在线观看| 日韩视频免费在线| 国产精品va在线播放我和闺蜜| 亚洲天堂黄色| 欧美在线网站| 9国产精品视频| 性8sex亚洲区入口| 亚洲激情在线播放| 亚洲永久免费视频| 亚洲国产成人av| 亚洲视频电影图片偷拍一区| 怡红院精品视频| 亚洲一区图片| 日韩视频免费看| 久久国产精品第一页| 中国亚洲黄色| 美女国产精品| 久久久久欧美精品| 欧美性久久久| 亚洲青色在线| 激情五月婷婷综合| 亚洲午夜视频在线观看| 亚洲精选一区| 久久综合激情| 久久久久久国产精品mv| 欧美午夜电影在线观看| 欧美激情五月| 亚洲成在人线av| 久久激情综合网| 午夜在线一区| 欧美性生交xxxxx久久久| 亚洲丶国产丶欧美一区二区三区| 国产女主播在线一区二区| 日韩午夜一区| 99视频国产精品免费观看| 久久一本综合频道| 久久精品国产99精品国产亚洲性色 | 一区二区三区四区五区精品视频| 欧美日韩国产系列| 欧美激情一区二区三区成人| 国产欧美日韩精品专区| 亚洲美女精品成人在线视频| 亚洲大胆视频| 欧美一区视频| 久久久噜久噜久久综合| 麻豆精品91| 亚洲国产成人精品久久| 久久久久久久一区| 久久精品国产69国产精品亚洲 | 另类人畜视频在线| 国产亚洲精品久久久久动| 亚洲综合导航| 久久高清福利视频| 国产日韩成人精品| 午夜精品亚洲一区二区三区嫩草| 午夜一区不卡| 国产乱码精品一区二区三区av| 一本色道精品久久一区二区三区| 制服丝袜激情欧洲亚洲| 欧美日韩综合另类| 一区二区不卡在线视频 午夜欧美不卡在 | 老牛嫩草一区二区三区日本 | 亚洲综合色网站| 欧美综合国产| 在线观看视频免费一区二区三区| 老司机久久99久久精品播放免费 | 国语自产在线不卡| 久久九九国产精品| 欧美电影资源| 一本久道久久久| 国产精品久久999| 午夜一区在线| 欧美激情一区二区三区在线| 一本一本a久久| 国产精品久久久久秋霞鲁丝| 欧美一二三视频| 亚洲国产精品va在线观看黑人| 亚洲免费观看高清完整版在线观看熊 | 亚洲国产精品久久人人爱蜜臀| 蜜桃av一区二区三区| 亚洲日本久久| 久久精品99国产精品| 亚洲第一中文字幕| 欧美日韩123| 午夜精品久久99蜜桃的功能介绍| 久久久水蜜桃| 99精品欧美一区| 国产精品中文在线| 毛片基地黄久久久久久天堂| 一区二区三区四区五区精品| 免费观看日韩| 亚洲午夜激情| 亚洲高清视频中文字幕| 欧美视频专区一二在线观看| 久久精品国产一区二区三区| 9久re热视频在线精品| 久久天天躁狠狠躁夜夜爽蜜月| 一区二区三区国产在线| 国产一区视频观看| 欧美日韩高清在线| 久久久久国产一区二区| 噜噜噜91成人网| 国语自产精品视频在线看抢先版结局 | 永久免费视频成人| 欧美特黄一区| 女生裸体视频一区二区三区| 亚洲欧美另类久久久精品2019| 91久久精品国产91性色| 久久久噜噜噜久久人人看| 一区二区三区欧美日韩| 极品日韩av| 国产麻豆视频精品| 欧美日本中文字幕| 久久综合网hezyo| 亚洲欧美日本精品| av不卡在线观看| 亚洲国产精品ⅴa在线观看| 久久久水蜜桃| 久久国产精品网站| 亚洲男人av电影| 亚洲视频一区| 亚洲精品一区二区三区蜜桃久 | 亚洲综合国产| av成人免费在线观看| 亚洲国产一区在线观看| 欧美a级大片| 久久亚洲私人国产精品va媚药| 亚久久调教视频| 亚洲一区二区在线| 一区二区三区久久久| 日韩视频一区| 亚洲精品一区在线| 亚洲精品黄色| 亚洲黄色视屏| 亚洲韩日在线| 亚洲精品之草原avav久久| 最新高清无码专区| 亚洲精品视频在线| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久久爽爽爽美女图片| 欧美一区二视频| 欧美一区二区三区在线播放| 午夜精品久久久久久久男人的天堂| 亚洲午夜成aⅴ人片| 亚洲视屏在线播放| 亚洲综合欧美| 久久国产精品高清| 久久综合伊人77777| 免费欧美电影| 亚洲高清三级视频| 99re6这里只有精品| 亚洲免费人成在线视频观看| 亚洲一区在线免费观看| 亚洲曰本av电影| 亚洲欧美日韩第一区| 欧美日韩在线另类| 99re在线精品| 在线一区二区视频| 一区二区三区回区在观看免费视频| 一区二区三区国产在线| 正在播放欧美一区| 亚洲免费中文| 久久久精品动漫| 欧美777四色影视在线| 亚洲国产一区二区三区a毛片 | 欧美风情在线观看| 欧美三级视频在线观看| 国产欧美精品日韩区二区麻豆天美| 国产亚洲精品bv在线观看| 黄网动漫久久久| 99精品国产在热久久婷婷| 亚洲欧美精品一区| 久久精品五月婷婷| 欧美aⅴ99久久黑人专区| 欧美日韩一区二区三区四区在线观看| 欧美性淫爽ww久久久久无| 国产亚洲欧美色| 亚洲精品中文字幕在线| 午夜精品久久久久久99热| 久久影视精品| 亚洲精品一区二区三区婷婷月| 亚洲图片欧美一区| 久久亚洲一区二区三区四区| 欧美少妇一区| 亚洲成人在线视频网站| 亚洲欧美另类在线观看| 欧美电影在线观看完整版| 亚洲一二三区精品| 免费av成人在线| 国产精品视频一二| 亚洲欧洲在线免费| 欧美在线首页| 亚洲精品一二区| 久久久综合免费视频| 国产精品成人免费| 亚洲欧洲综合另类| 久久综合狠狠| 亚洲欧美日韩爽爽影院| 欧美伦理视频网站|