C++-POJ1502-MPI Maelstrom-[最短路][spfa][栈优化]
我不理解为什么写dijkska就WA呢?
atoi()是个好东西,给你个颜色,自己体会
疑惑!疑惑!疑惑!
#include <queue>
#include <cstdio>
#include <algorithm>
using namespace std;
const int INF=1e9,MAXN=,MAXM=;
int w(){char s[];scanf("%s",s);return s[]=='x'?INF:atoi(s);}
struct edge{
int v,w,next;
edge(int v=,int w=,int next=):v(v),w(w),next(next){}
};
edge E[MAXM];int head[MAXN],cnt;
void add(int u,int v,int w){
E[++cnt]=edge(v,w,head[u]),head[u]=cnt;
E[++cnt]=edge(u,w,head[v]),head[v]=cnt;
}
int dis[MAXN],vis[MAXN],stack[MAXN],top;
int spfa(int s,int n){
for(int i=;i<=n;i++)vis[i]=,dis[i]=INF;
top=,stack[++top]=,vis[s]=,dis[s]=;
for(int u;top>=;){
u=stack[top--],vis[u]=;
for(int i=head[u],v,w;v=E[i].v,w=E[i].w,i;i=E[i].next)
if(dis[v]>dis[u]+w){
dis[v]=dis[u]+w;
if(!vis[v])stack[++top]=v,vis[v]=;
}
}
int ans=;
for(int i=;i<=n;i++)ans=max(ans,dis[i]);
return ans;
}
int main(){
int n;scanf("%d",&n);
for(int i=;i<=n;i++)for(int j=;j<i;j++)add(i,j,w());
printf("%d\n",spfa(,n));
return ;
}
C++-POJ1502-MPI Maelstrom-[最短路][spfa][栈优化]的更多相关文章
- POJ-1502 MPI Maelstrom 迪杰斯特拉+题解
POJ-1502 MPI Maelstrom 迪杰斯特拉+题解 题意 题意:信息传输,总共有n个传输机,先要从1号传输机向其余n-1个传输机传输数据,传输需要时间,给出一个严格的下三角(其实就是对角线 ...
- POJ 1502 MPI Maelstrom (最短路)
MPI Maelstrom Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6044 Accepted: 3761 Des ...
- POJ 1502 MPI Maelstrom [最短路 Dijkstra]
传送门 MPI Maelstrom Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5711 Accepted: 3552 ...
- poj1502 MPI Maelstrom(单源最短路)
题意:表面乍一看output是输出最小值,但仔细研究可以发现,这个最小值是从点1到所有点所花时间的最小值,其实是访问这些节点中的最大值,因为只有访问了最长时间的那个点才算访问了所有点.所以求最短路之后 ...
- POJ1502 MPI Maelstrom Dijkstra
题意 给出图,从点1出发,求到最后一个点的时间. 思路 单源最短路,没什么好说的.注意读入的时候的技巧. 代码 #include <cstdio> #include <cstring ...
- POJ1502: MPI Maelstrom
红果果的dijstra算法应用,这里采用邻接表存储图 小插曲:while(scanf("%d",&n))提交时内存超限,改成while(scanf("%d&quo ...
- 最短路--spfa+队列优化模板
spfa普通版就不写了,优化还是要的昂,spfa是可以判负环,接受负权边和重边的,判断负环只需要另开一个数组记录每个结点的入队次数,当有任意一个结点入队大于点数就表明有负环存在 #include< ...
- 最短路--SPFA及其优化
SPFA Shortest Path Faster Algorithm 最短路径最快算法 算法思想 SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路 ...
- C++-POJ2159-Candies[spfa][栈优化][邻接表]
#include <cstdio> ,N=; struct edge{int v,w,next;}e[M];int head[N],cnt; void add(int u,int v,in ...
随机推荐
- C++ 常用编程--Swap函数有几种写法?
C++ 常用编程--Swap函数有几种写法? 在说C++模板的方法前,我们先想想C语言里面是怎么做交换的. 举个例子,要将两个int数值交换,是不是想到下面的代码: void swap(int& ...
- js将已有数组重新分组(将数组每10项分成一组)
项目中碰到的一个小需求:分页请求数据,一次请求60条,需要将后台返回的数组每10条分成一组渲染一个表格(表格使用的是ant-design-vue的table) 实现逻辑: var chunk = 10 ...
- proptypes介绍
开始 prop-types的主要作用:对props中数据类型进行检测及限制 引用方法:import PropTypes from 'prop-types' 用法: // 基本用法 用来检测数据类型 c ...
- PHP0025:PHP 博客项目开发2
- cf938D
题意简述:n个点m条边的无向图,有点权,有边权, 对于每一个点计算,d(i,j)表示点i到点j的最短路 题解:边权扩大二倍,建立源点,然后源点向每一个点x连接一条权值为a[x]的边,然后跑最短路即可 ...
- dir()和vars()的区别就是
------------恢复内容开始------------ dir()只打印属性(属性,属性......) 而vars()则打印属性与属性的值(属性:属性值......) >> a='a ...
- Windows10下MariaDB数据库的安装与卸载
MariaDB数据库管理系统是MySQL的一个分支,100%兼容Mysql,开源免费,在Windows系统和Linux系统中都能运行,很受到欢迎.自从mysql被Oracle收购后,MariaDB就成 ...
- Java 8 Stream Api 中的 peek 操作
1. 前言 我在Java8 Stream API 详细使用指南[1] 中讲述了 [Java 8 Stream API]( "Java 8 Stream API") 中 map 操作 ...
- C++文件处理(一):读/写txt文件
C++文件处理与C语言不同,C++文件处理使用的是:流(stream) C++头文件fstream定义了三个类型来支持文件IO
- MATLAB代码v2.0
% % V 原始评价指标矩 % % v_ij 第i个地区第j个指标的初始值 % % r_ij 第i个地区第j个指标的标准化值 % % R 标准化后的评价矩阵 % % m 统计地区总个数 % % n 已 ...