ACM-icpc---bfs求最短路 痛定思痛。 2022-06-16 06:36 202阅读 0赞 ![C239-1004-2.jpg][] You are working on the team assisting with programming for the Mars rover. To conserve energy, the rover needs to find optimal paths across the rugged terrain to get from its starting location to its final location. The following is the first approximation for the problem. ![C239-1004-1.jpg][] **N** \* **N** square matrices contain the expenses for traversing each individual cell. For each of them, your task is to find the minimum-cost traversal from the top left cell \[0\]\[0\] to the bottom right cell \[ **N**\-1\]\[ **N**\-1\]. Legal moves are up, down, left, and right; that is, either the row index changes by one or the column index changes by one, but not both. Input Each problem is specified by a single integer between 2 and 125 giving the number of rows and columns in the **N** \* **N** square matrix. The file is terminated by the case **N** = 0. Following the specification of **N** you will find **N** lines, each containing **N** numbers. These numbers will be given as single digits, zero through nine, separated by single blanks. Output Each problem set will be numbered (beginning at one) and will generate a single line giving the problem set and the expense of the minimum-cost path from the top left to the bottom right corner, exactly as shown in the sample output (with only a single space after "Problem" and after the colon). Sample Input 题意:给出一个n阶的矩阵,求从a\[0\]\[0\]到a\[n-1\]\[n-1\]的最短距离; 3 5 5 4 3 9 1 3 2 7 5 3 7 2 0 1 2 8 0 9 1 1 2 1 8 1 9 8 9 2 0 3 6 5 1 5 7 9 0 5 1 1 5 3 4 1 2 1 6 5 3 0 7 6 1 6 8 5 1 1 7 8 3 2 3 9 4 0 7 6 4 1 5 8 3 2 4 8 3 7 4 8 4 8 3 4 0 Sample Output Problem 1: 20 Problem 2: 19 Problem 3: 36 #include<cstdio> #include<queue> #include<cstring> #include<string> #include<algorithm> using namespace std; int dx[]= {-1,0,1,0}; int dy[]= {0,1,0,-1}; int a[150][150],vis[150][150]; int n,ans; struct A { int x,y; int dis; friend bool operator <(A a,A b) { return a.dis>b.dis; } }; void bfs() { priority_queue<A> Q; A f; f.x=0; f.y=0; f.dis=a[0][0]; vis[0][0]=1; Q.push(f); while(!Q.empty()) { f=Q.top(); Q.pop(); if(f.x==n-1&&f.y==n-1) { ans=f.dis; return; } for(int i=0;i<4; i++) { A p=f; p.x+=dx[i]; p.y+=dy[i]; p.dis+=a[p.x][p.y]; if(p.x>=0&&p.x<n&&p.y>=0&&p.y<n&&!vis[p.x][p.y]) { vis[p.x][p.y]=1; Q.push(p); } } } } int main() { int cas=1; while(~scanf("%d",&n),n) { memset(vis,0,sizeof(vis)); for(int i=0; i<n; i++) for(int j=0; j<n; j++) scanf("%d",&a[i][j]); ans=0; bfs(); printf("Problem %d: %d\n",cas++,ans); } return 0; } [C239-1004-2.jpg]: /images/20220616/9a993f9c7bc04ce7816eb6c2a067f6de.png [C239-1004-1.jpg]: /images/20220616/74cde23bc3df4233b1fa6a8f405072c4.png
相关 最短路 <table> <tbody> <tr> <td> <h2>最短路</h2> <strong>Time Limit: 5000/1000 MS (Java/O 向右看齐/ 2024年02月18日 22:54/ 0 赞/ 45 阅读
相关 最短路 \[hdu 1599\] ([http://acm.hdu.edu.cn/showproblem.php?pid=1599][http_acm.hdu.edu.cn_showp 红太狼/ 2022年08月04日 08:28/ 0 赞/ 166 阅读
相关 C--最短路 Problem Description 给出一个带权无向图,包含n个点,m条边。求出s,e的最短路。保证最短路存在。 Input 多组输入。 对于每组数据。 以你之姓@/ 2022年07月12日 08:26/ 0 赞/ 125 阅读
相关 ACM-icpc---bfs求最短路 ![C239-1004-2.jpg][] You are working on the team assisting with programming for the 痛定思痛。/ 2022年06月16日 06:36/ 0 赞/ 202 阅读
相关 最短路 队列+松弛操作 读取队头顶点u,并将队头顶点u出队(记得消除标记);将与点u相连的所有点v进行松弛操作,如果能更新估计值(即令d\[v\]变小),那么就更新,另外,如果 忘是亡心i/ 2022年06月11日 04:06/ 0 赞/ 206 阅读
相关 最短路 一下模板均已通过HDUOJ 2544 程序设计竞赛队空间和时间复杂度要求都很高,所以朴素的Dijkstra[算法][Link 1]无论时间还是空间,效率都很低。 所以,一般 淡淡的烟草味﹌/ 2022年06月09日 04:28/ 0 赞/ 242 阅读
相关 求最短通路值 ![Center][] 解题思想: ![Center 1][] import java.util.Random; import java.util. 谁践踏了优雅/ 2022年05月29日 09:57/ 0 赞/ 126 阅读
相关 最短路 最短路 典型用途:交通网络的问题——从甲地到乙地之间是否有公路连通?在有多条通路的情况下,哪一条路最短? 交通网络用有向网来表示:顶点——表示城市,弧——表示两个城 淡淡的烟草味﹌/ 2022年03月18日 12:35/ 0 赞/ 253 阅读
相关 最短路 Floyed [http://codevs.cn/problem/1077/][http_codevs.cn_problem_1077] include<cstdi ﹏ヽ暗。殇╰゛Y/ 2021年11月18日 00:30/ 0 赞/ 292 阅读
相关 最短路 复习下图论算法 1. 邻接表的Dijkstra ![ContractedBlock.gif][] ![ExpandedBlockStart.gif][] / 冷不防/ 2021年11月02日 14:24/ 0 赞/ 448 阅读
还没有评论,来说两句吧...