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

A Za, A Za, Fighting...

堅信:勤能補拙

PKU 1324 Holedox Moving

問題:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1324

參考:
http://hi.baidu.com/aekdycoin/blog/item/08774afbd1a29316a8d31111.html
http://clover520.blogbus.com/logs/38001465.html

思路:
用BFS求最短路徑肯定是沒有問題的,關鍵是狀態如何表示
參考別人的思路,原來蛇身只需要通過上、下、左、右四個方向表示即可(兩bits或4進制),這樣可以很大程度上減少空間,而且判重也就不再是個問題,只需要用三維數組表示即可
不過我自己寫出來的代碼卻總是MLE,悲劇...(無奈,貼了別人代碼過的,無恥啊)

代碼:
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 
 5 int kk[4][2]={1,0,0,1,0,-1,-1,0},N,M,L;
 6 struct point{
 7     char x,y;
 8     int dis,body;
 9 };
10 int bfs();
11 int main(){
12     int Cas=0;
13     while(scanf("%d%d%d",&N,&M,&L)==3){
14         if(N==0&&M==0&&L==0)break;
15         printf("Case %d: %d\n",++Cas,bfs());
16     }
17     return 0;
18 }
19 char viss[20][20][1<<14];
20 int vis(struct point* t){
21     int ans=0,i=0;
22     if(viss[t->x][t->y][t->body])return 1;
23     viss[t->x][t->y][t->body]=1;
24     return 0;
25 }
26 char map[20][20],mapt[20][20];
27 char valid(int x,int y){
28     if(x<0||x>=N||y<0||y>=M||mapt[x][y])return 0;
29     return 1;
30 }
31 struct point Q[20*20*(1<<14)];
32 int head,tail;
33 int bfs(){
34     int x,y,lx,ly,i,k,nx,ny;
35     struct point t,now;
36     memset(viss,0,sizeof(viss));
37     scanf("%d%d",&lx,&ly);
38     t.x=lx-1;t.y=ly-1;t.dis=0;t.body=0;
39     for(i=1;i<L;++i){
40         scanf("%d%d",&x,&y);
41         for(k=0;k<4;++k)if(lx+kk[k][0]==x&&ly+kk[k][1]==y)break;
42         t.body|=k<<((i-1)<<1);
43         lx=x;ly=y;
44     }
45     memset(map,0,sizeof(map));
46     scanf("%d",&k);
47     for(i=0;i<k;++i){
48         scanf("%d%d",&x,&y);
49         map[x-1][y-1]=1;
50     }
51     head=tail=0;
52     Q[tail++]=t;
53     vis(&t);
54     while(head!=tail){
55         now=Q[head++];
56         if(now.x==0&&now.y==0)return now.dis;
57         
58         memcpy(mapt,map,sizeof(map));
59         mapt[x=now.x][y=now.y]=1;
60         int s=now.body;
61         for(i=1;i<L;++i,s>>=2){
62             k=s&3;
63             mapt[x=x+kk[k][0]][y=y+kk[k][1]]=1;
64         }
65         
66         for(k=0;k<4;++k){
67             if(!valid(nx=now.x+kk[k][0],ny=now.y+kk[k][1]))continue;
68             t.x=nx,t.y=ny;
69             t.body=((now.body<<2)|(3-k))&((1<<((L-1)<<1))-1);
70             t.dis=now.dis+1;
71             if(!vis(&t)){
72                 Q[tail++]=t;
73             }
74         }
75     }
76     return -1;
77 }

posted on 2010-09-03 10:05 simplyzhao 閱讀(342) 評論(0)  編輯 收藏 引用 所屬分類: B_搜索

導航

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

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品乱码一区二区三区| 亚洲缚视频在线观看| 国产麻豆午夜三级精品| 国产精品hd| 国产精品资源| 国内精品久久久久伊人av| 激情一区二区三区| 亚洲精品乱码| 亚洲直播在线一区| 久久久久久久久伊人| 欧美激情中文不卡| 亚洲免费播放| 欧美一区视频在线| 欧美va天堂| 国产精品免费观看在线| 国一区二区在线观看| 亚洲精品久久久久久久久久久久久 | 久久狠狠亚洲综合| 嫩草成人www欧美| 亚洲最新在线| 久久久久久9999| 国产精品va在线播放| 激情一区二区| 午夜精品免费在线| 91久久精品美女高潮| 欧美一区二区三区免费观看| 欧美日韩午夜在线| 136国产福利精品导航网址| 亚洲一级二级| 亚洲第一网站| 久久精品国产一区二区电影| 欧美日韩中文在线| 亚洲精品国产精品乱码不99| 亚洲私人影院| 久久精品在线播放| 亚洲国产精品一区在线观看不卡 | 亚洲人成网站精品片在线观看| 亚洲午夜羞羞片| 国产精品久久福利| 欧美国产视频日韩| 国语自产精品视频在线看抢先版结局 | 欧美日韩亚洲激情| 国产欧美三级| 亚洲一区二区三区乱码aⅴ| 欧美二区乱c少妇| 亚洲欧美在线看| 国产精品久久久久久久免费软件| 亚洲精品一区二区三区婷婷月| 久久久www成人免费精品| 亚洲视频在线观看| 欧美亚洲第一区| 亚洲免费视频中文字幕| 一区二区三区精密机械公司| 欧美日韩国产大片| 99在线热播精品免费| 久久大逼视频| 亚洲欧洲偷拍精品| 亚洲欧美日本国产专区一区| 亚洲精品视频在线观看免费| 麻豆免费精品视频| 亚洲国产一区二区a毛片| 美女尤物久久精品| 蜜臀av在线播放一区二区三区| 曰本成人黄色| 欧美成人精品在线播放| 久久夜色精品国产噜噜av| 一区精品在线| 最新69国产成人精品视频免费| 欧美日本精品一区二区三区| 亚洲天堂av图片| 亚洲午夜国产一区99re久久| 国产精品资源| 蜜臀久久久99精品久久久久久| 午夜精品一区二区三区在线| 一区二区三区久久精品| 蜜臀久久99精品久久久画质超高清 | 在线观看视频一区| 免费在线观看成人av| 蜜桃伊人久久| 亚洲图片欧洲图片日韩av| 亚洲一区二区欧美日韩| 国产三级欧美三级| 美女国产精品| 亚洲一区二区在线免费观看视频| 一区在线观看| 欧美岛国激情| 欧美三级网址| 免费高清在线一区| 欧美日韩视频在线第一区| 欧美一区二区三区视频在线| 久久久久久久一区二区| 一区二区激情视频| 欧美在线视频在线播放完整版免费观看 | 亚洲欧美影院| 91久久久亚洲精品| 亚洲欧美国产77777| 在线观看亚洲a| 亚洲一区二区在线观看视频| 亚洲高清视频的网址| 在线综合欧美| 亚洲国产乱码最新视频| 亚洲欧美国产精品va在线观看 | 国产精品免费小视频| 欧美a级片一区| 国产日韩欧美成人| 亚洲老司机av| 亚洲国产欧美在线人成| 午夜精品久久久久久久白皮肤| 亚洲人成高清| 久久精品视频一| 性欧美精品高清| 欧美色图一区二区三区| 亚洲国产精品第一区二区三区| 国产手机视频精品| 在线视频欧美日韩| 夜夜嗨av色一区二区不卡| 久久综合中文| 久久先锋资源| 国产欧美一区二区三区在线老狼| 亚洲精品久久久久久下一站| 亚洲二区免费| 久久琪琪电影院| 欧美 日韩 国产 一区| 国产一区二区三区四区三区四| 亚洲精品影院| 日韩香蕉视频| 欧美剧在线免费观看网站| 欧美国产91| 91久久精品一区二区三区| 久久午夜羞羞影院免费观看| 麻豆精品在线视频| 有坂深雪在线一区| 久久久水蜜桃| 欧美福利网址| 日韩午夜av| 欧美日韩三级在线| 一区二区三区国产| 亚洲女女女同性video| 国产精品视频福利| 亚洲欧美日韩网| 久久久中精品2020中文| 韩国成人福利片在线播放| 久久国产精品99久久久久久老狼| 亚洲字幕一区二区| 亚洲一区二区成人| 亚洲人成在线观看| 久久久久久久综合色一本| 一区二区三区高清| 午夜视频在线观看一区二区三区| 中文国产成人精品久久一| 欧美日韩国产在线观看| 亚洲乱码国产乱码精品精98午夜| 日韩亚洲欧美中文三级| 欧美激情中文字幕一区二区| 亚洲国产成人一区| 99精品热视频只有精品10| 欧美日韩亚洲一区二区三区四区 | 一区二区免费看| 中文亚洲免费| 国产午夜精品久久久久久久| 久久久精品一区| 91久久精品一区| 欧美一二三区在线观看| 黄色一区二区三区| 欧美国产高清| 亚洲网站视频福利| 免费成人av资源网| 亚洲香蕉成视频在线观看| 国产乱子伦一区二区三区国色天香| 久久国产天堂福利天堂| 亚洲伦理久久| 久久频这里精品99香蕉| 99re热精品| 国内揄拍国内精品久久| 欧美aⅴ一区二区三区视频| 这里只有精品视频| 免费不卡在线视频| 亚洲伊人伊色伊影伊综合网| 在线精品国产欧美| 国产精品久久二区二区| 久久综合成人精品亚洲另类欧美| 日韩亚洲国产精品| 男女精品视频| 欧美一区二区三区四区视频| 亚洲欧洲一区二区在线播放| 国产欧美一区二区精品性| 久久精品30| 在线亚洲伦理| 91久久精品国产| 卡通动漫国产精品| 性色av一区二区三区红粉影视| 亚洲日本aⅴ片在线观看香蕉| 国产欧美日韩一区二区三区在线 | 欧美亚洲网站| 99在线热播精品免费99热| 欧美福利一区二区三区| 久久久国产视频91| 欧美一区网站| 午夜精品久久久久久99热软件| 亚洲激情视频网站|