日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU - 3533 Escape(预处理+A*)

發布時間:2024/4/11 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU - 3533 Escape(预处理+A*) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:點擊查看

題目大意:題意我感覺描述的很不清楚。。是看網上其他大佬的博客總結來的,大意就是我們要從點(0,0)走到點(n,m),然后在一些地方設置了炮塔(炮塔視為墻),可以向一個方向周期性地發射同一速率的炮彈,當炮彈到達某一方格的時間是整數時,說明當我們在這個時間到達這個方格時會被擊中,然后我們的行駛路線有五個方向,分別是上下左右和不動,并且可以走之前走過的路,問在上述條件下,我們到達目的地的最短時間是多少

需要補充一點,兩個炮彈若中途相遇則可以相互穿過,但是炮彈無法穿過炮塔

題目分析:我們可以發現關于炮塔在某一時間發射的炮彈的位置,該方格是無法供我們行走的,所以我們可以開一個三維的have數組用來儲存哪些狀態是無法到達的,預處理一下,然后再直接bfs深搜即可,注意因為這個題目中可以回到之前走過的位置,所以我們可以開一個三維的vis數組用來去重,很像之前做過的動態規劃+bfs的題目一樣,因為這個題目的起點和終點都是固定的,我們可以用曼哈頓距離來比較一下隊列中的優先級,就可以用A*算法優化了

上代碼吧:

#include<iostream> #include<string> #include<cstring> #include<cstdio> #include<algorithm> #include<climits> #include<cmath> #include<cctype> #include<stack> #include<queue> #include<list> #include<vector> #include<set> #include<map> #include<unordered_map> using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=110;const int b[5][2]={0,1,0,-1,1,0,-1,0,0,0};bool book[N][N];//儲存炮塔位置bool have[N][N][1100];//儲存炮彈位置bool vis[N][N][1100];//儲存重復位置int n,m,k,time,ans;struct node//儲存炮彈信息用 {int t,v,x,y,dir; }a[N];bool check(int x,int y)//檢查邊界,注意是從0開始到n/m結束 {if(x<0||y<0||x>n||y>m||book[x][y])return false;return true; }void init()//預處理炮彈的位置 {for(int i=1;i<=k;i++)//pre{for(int j=0;j<=time;j+=a[i].t)//time{int xx=a[i].x+b[a[i].dir][0];int yy=a[i].y+b[a[i].dir][1];while(check(xx,yy)){int k=abs(xx-a[i].x)+abs(yy-a[i].y);//走了幾步 if(k%a[i].v==0)have[xx][yy][j+k/a[i].v]=true;xx+=b[a[i].dir][0];yy+=b[a[i].dir][1];}}} }struct Node//優先隊列用 {int x,y,time,rtime;Node(int X,int Y,int TIME,int RTIME){x=X;y=Y;time=TIME;rtime=RTIME;}bool operator<(const Node& a)const{return time+rtime>a.time+a.rtime;} };bool A_star() {priority_queue<Node>q;q.push(Node(0,0,0,n+m));vis[0][0][0]=true;while(!q.empty()){Node cur=q.top();q.pop();if(cur.time>time)return false;if(cur.x==n&&cur.y==m){ans=cur.time;return true;}for(int i=0;i<5;i++){int xx=cur.x+b[i][0];int yy=cur.y+b[i][1];int t=cur.time+1;if(!check(xx,yy))continue;if(vis[xx][yy][t])continue;if(have[xx][yy][t])continue;vis[xx][yy][t]=true;int rt=abs(xx-n)+abs(yy-m);q.push(Node(xx,yy,t,rt));}}return false; }int main() {while(scanf("%d%d%d%d",&n,&m,&k,&time)!=EOF){memset(book,false,sizeof(book));memset(have,false,sizeof(have));memset(vis,false,sizeof(vis));for(int i=1;i<=k;i++)//讀入炮彈信息{char dir[5];scanf("%s",dir);if(dir[0]=='E')a[i].dir=0;else if(dir[0]=='W')a[i].dir=1;else if(dir[0]=='S')a[i].dir=2;else if(dir[0]=='N')a[i].dir=3;scanf("%d%d%d%d",&a[i].t,&a[i].v,&a[i].x,&a[i].y);book[a[i].x][a[i].y]=true;}init();if(A_star())printf("%d\n",ans);elseprintf("Bad luck!\n");}return 0; }

?

總結

以上是生活随笔為你收集整理的HDU - 3533 Escape(预处理+A*)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男人插女人视频网站 | 天天做天天爱天天爽 | 黄色国产视频 | 在线97| 重囗另类bbwseⅹhd | 欧美黑人猛交 | 人妻精品一区二区在线 | 97福利在线 | 被灌满精子的波多野结衣 | 激情网五月天 | 日韩黄色短视频 | 香蕉视频黄色在线观看 | 中文字幕三区 | 精一区二区 | 中文字幕高清在线免费播放 | 老司机精品在线 | avtt亚洲天堂 | 男女互操 | 日本精品视频一区二区三区 | 午夜视频免费在线观看 | 一级特级黄色片 | 一级片免费网址 | 亚洲精品在线影院 | 黄色福利视频 | 黄色av不卡| 精品无码一区二区三区爱欲 | 色婷婷av一区二区三区麻豆综合 | 欧美高清在线一区 | 日韩国产小视频 | 中文字幕黄色片 | 欧美日韩中文字幕在线观看 | 国产精品一色哟哟哟 | 国产69页 | 欧美性xxxxxxxxx | 日本三级免费看 | 日韩欧美在线看 | 麻豆亚洲精品 | 天天舔天天爽 | 香蕉网站在线观看 | 免费91视频 | 大陆农村乡下av | 午夜免费大片 | av免费网站| 成人小视频免费观看 | 开心激情综合 | 国产原创剧情av | 先锋影音av资源在线 | 日本一区二区三区在线观看视频 | 国产999精品久久久久久 | 欧美八区| 一区二区国产在线 | 日韩在线视频在线观看 | 国产电影一区二区三区爱妃记 | 欧美激情精品久久久久久 | 日韩一区二区三区精品 | 欧美11一13sex性hd | 午夜影院0606 | 久久久久国产一区二区 | 欧美成人乱码一二三四区免费 | 亚洲色图欧美视频 | 黑人巨大精品欧美一区二区蜜桃 | 久久久毛片 | 欧美巨大荫蒂茸毛毛人妖 | 九色.com| 日本免费一级片 | 日本a视频在线观看 | 国产色在线视频 | 欧美wwwxxxx | 很污的网站 | 年下总裁被打光屁股sp | 日韩电影在线观看一区二区 | 国产高清视频免费观看 | 射一射 | 免费69视频| 日本精品人妻无码免费大全 | 午夜免费av| 深夜成人在线观看 | 午夜免费视频观看 | 中文字幕人成 | 日韩乱码人妻无码中文字幕 | 色老头一区二区三区在线观看 | ass日本寡妇pics | 国产毛片在线视频 | 波多野结衣视频一区 | 久久久久国产免费 | 国产亚洲色婷婷久久99精品 | 国产95在线 | 美女日批视频在线观看 | 国模大尺度视频 | 一女被多男玩喷潮视频 | 日本网站在线免费观看 | 天天操狠狠干 | 美女裸体网站久久久 | 久久精品视频中文字幕 | 最新地址av| 色眯眯av | 激情瑟瑟 | 日韩精品电影一区二区 | 国产精品666 |