POJ - 1847(朴素dijkstra)
题目链接
思路:
由题意得只有第一个方向不要转距离为 0,其他方向要转距离都为 1,
已知起点和中点,朴素dijkstra即可,感觉最短路的问题很多有建图思路大概就会写了。
样例为答案为 0 的情况解释 :2 -> 3 -> 1
代码:
#include <iostream>
#include <algorithm>
#include <iostream>
#include <string>
#include <stdio.h>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <math.h>
#include <climits>
#include <iomanip>
#include <queue>
#include <vector>
#define fastio ios::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL)
#define debug(a) cout << "debug : " << (#a) << " = " << a << endlusing namespace std;typedef long long ll;
typedef pair<int, int> PII;const int N = 110;
const int INF = 0x3f3f3f3f;
const double eps = 1e-6;
const int mod = 998244353;int a[N][N];
int n, s, t;
bool vis[N];
int dis[N];int dijkstra()
{memset(vis, false, sizeof vis);memset(dis, INF, sizeof dis);dis[s] = 0;for (int i = 1; i <= n; i++){int t = -1;for (int j = 1; j <= n; j++){if (!vis[j] && (t == -1 || dis[j] < dis[t]))t = j;}vis[t] = true;for (int j = 1; j <= n; j++)dis[j] = min(dis[j], dis[t] + a[t][j]);}if (dis[t] == INF)return -1;elsereturn dis[t];
}int main()
{memset(a, INF, sizeof a);cin >> n >> s >> t;for (int i = 1; i <= n; i++){int k;cin >> k;for (int j = 1; j <= k; j++){int r;cin >> r;if (j == 1)a[i][r] = 0;elsea[i][r] = 1;}}cout << dijkstra() << endl;return 0;
}
POJ - 1847(朴素dijkstra)相关推荐
- N - Tram POJ - 1847
N - Tram POJ - 1847 题意: 从一个点出发,可以到达若干个点,到第一个点的边权为0,到其他点的边权为1,到不了为 inf ,求从起点到终点的最短路. #include<iost ...
- 7-4 最短路径之Dijkstra(朴素dijkstra打印路径)
作者 龚雄兴 单位 湖北文理学院 本题目要求通过读入无向网的边的信息(省略了各顶点的信息,仅用顶点编号来表示),构造图,并利用Dijkstra算法,求出指定源点到其它各点的最短路径. 样例" ...
- AcWing 1137. Choose the best route(朴素dijkstra反向建图 or 虚拟源点法)
题目比较简单,讲两种做法 法一.二都是用的朴素dijkstra算法 法一:反向建图 求终点s到每个起点的最短距离 O(T * (n^2 + n))(T表示多组测试数据)820ms #include & ...
- POJ - 1847 Tram(dijkstra)
题意:有向图有N个点,当电车进入交叉口(某点)时,它只能在开关指向的方向离开. 如果驾驶员想要采取其他方式,他/她必须手动更换开关.当驾驶员从路口A驶向路口B时,他/她尝试选择将他/她不得不手动更换开 ...
- poj 1847 Tram 最短路 dijkstra、floyed
文章目录 Dijkstra算法: AC的代码: WA的代码: Floyed代码: 我实在是找不到dijkstra的写法哪里错了,哭了,样例还有自己编的数据都没问题,但是就是WA,放弃 = = 第二天到 ...
- poj 1556 (Dijkstra + Geometry 线段相交)
链接:http://poj.org/problem?id=1556 The Doors Time Limit: 1000MS Memory Limit: 10000K Total Submissi ...
- POJ 3463 Sightseeing dijkstra
题目链接:http://poj.org/problem?id=3463 题意:给定一个图,找最短路和比最短路多1的路的条数. 思路1:将次短路也当作一种"最短"的状态,去扩展状态. ...
- POJ 3268 (dijkstra算法)
Silver Cow Party Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N ...
- Silver Cow Party POJ - 3268(dijkstra+反向交换)
题意: 求X到某点来回路程的最短路的最大值. 模板更新中... 题目 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered ...
最新文章
- pytorch 指定卡1_[原创][深度][PyTorch] DDP系列第一篇:入门教程
- PHP mysql 事务处理实例
- 20135320赵瀚青LINUX第十八章读书笔记
- CCF 2016年题目题解 - Python
- 【小白学习keras教程】十一、Keras中文本处理Text preprocessing
- QT的QGraphicsView类的使用
- matlab arima模型定阶,ARIMA模型预测问题
- web目录字典_Metasploit -- 目录详解及常用命令
- 计算机二级web题目(1)--web基础
- JeeWx 捷微 2.1 发布,微信管家平台
- C# .NET 爬虫抓取京东商城所有商品分类
- 我是如何学习游戏引擎的?
- ISO8601标准时间格式
- 关于STAR法则简历
- 【Tools系列】在Win7系统上利用Simics安装Solaris 8 SPARC操作系统
- Excel表格数据导入到Oracle
- Android初级基础知识复习(十八) —— 自定义通知栏
- 电话交换机的作用,程控交换机的作用
- AutoJs学习-包名查看器
- 射频衰减器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告