1254. 最难的任务

★   输入文件:hardest.in   输出文件:hardest.out   简单对比
时间限制:1 s   内存限制:128 MB

【题目描述】

这个真的很难。算出 12345678987654321!,这个“!”是阶乘的意思。

呵,我在开玩笑。没有人成功的解决。

事实上,你是一个间谍。你要窃取一些敌军机密,现在你需要找到一个方法使你逃走的时间最少。

这里有很多交叉点和很多道路,在两个交叉点间可能有多条路。你很困惑,但随身携带笔记本电脑让你很快乐。

【输入格式】

第一行有一个整数T(T≤10)表示测试数据个数。

每组数据以两个整数开始,n和m(1≤n≤200,0≤m≤10000),交叉点的个数和各自的道路数。下面m行有三个整数 i,j,k(i<>j, 1≤k≤10000), 意思是i和j中间有一条长度为k的路。

你可以假设交叉点的编号为1...n。你需要从交叉点1到交叉点n。

道路是双向的。

【输出格式】

对于每组测试数据,打印最短距离。如果没有路可以出去,打印-1。

【样例输入】

1
2 1
1 2 3

【样例输出】

3

QAQ这题也太坑了吧 交了3遍才过 
一共出了两个问题
1.如果无法到达 输出-1
这里有一点需要注意的是尽管memset里写的0x3f 但是实际的赋值是0x3f3f3f3f
2.有重边肿么办?
额 我用了一个神奇的方法
就是一开始把边权数组Cost全部赋值为正无穷(反正就是一个很大的数)
每次输入边权 就把边权和Cost数组里的值取一个min
(这一道题数据范围小 Cost我就开了个二维数组,太蒟了)
嗯嗯 然后我没有处理就是如果已经加入过该边就不再加了
首先这可能会很慢 每次都要从前往后猛扫一遍
其次 Dijkstra里不是有一个vis数组吗 走过一遍就不会再走了 只需要处理一下边权
使得边权保持最小就行了 Σ(⊙▽⊙"a
♪(^∇^*)
AC代码:
#include<bits/stdc++.h>
#define pa pair<int,int>
#define maxn 205
#define INF 0x3f3f3f3f
using namespace std;
int T,n,m;
bool Bian[maxn][maxn];
int Cost[maxn][maxn];
vector<int> v[maxn];
priority_queue<pa,vector<pa>,greater<pa> > q;
int dis[maxn],vis[maxn];
void Dijkstra()
{
memset(dis,0x3f,sizeof(dis));
memset(vis,,sizeof(vis));
dis[]=;
q.push(make_pair(,));
while(!q.empty())
{
int x=q.top().second;
q.pop();
if(vis[x])
continue;
vis[x]=;
for(int i=;i<v[x].size();i++)
{
int y=v[x][i];
if(dis[x]+Cost[x][y]<dis[y])
{
dis[y]=dis[x]+Cost[x][y];
q.push(make_pair(dis[y],y));
}
}
}
}
int main()
{
freopen("hardest.in","r",stdin);
freopen("hardest.out","w",stdout);
scanf("%d",&T);
while(T--)
{
memset(Cost,0x3f,sizeof(Cost));
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
Cost[x][y]=Cost[y][x]=min(Cost[x][y],z);
v[x].push_back(y);//QAQ有重边到底咋办啊
v[y].push_back(x);
}
Dijkstra();
if(dis[n]==INF)
printf("-1\n");
else
printf("%d\n",dis[n]);
} return ;
}

 

cogs 1254. 最难的任务 Dijkstra + 重边处理的更多相关文章

  1. cogs 176. [USACO Feb07] 奶牛聚会 dijkstra

    176. [USACO Feb07] 奶牛聚会 ★☆   输入文件:sparty.in   输出文件:sparty.out   简单对比时间限制:3 s   内存限制:16 MB 译: zqzas N ...

  2. UVA10462Is There A Second Way Left? —— 次小生成树 kruskal算法

    题目链接:https://vjudge.net/problem/UVA-10462 Nasa, being the most talented programmer of his time, can’ ...

  3. Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd

    题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★   输入文件:butter.in   输出文件 ...

  4. Cogs 1672. [SPOJ375 QTREE]难存的情缘 LCT,树链剖分,填坑计划

    题目:http://cojs.tk/cogs/problem/problem.php?pid=1672 1672. [SPOJ375 QTREE]难存的情缘 ★★★☆   输入文件:qtree.in  ...

  5. HDU 2066 一个人的旅行(dijkstra水题+判重边)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题目大意:输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有 ...

  6. cogs 2. 旅行计划 dijkstra+打印路径小技巧

    2. 旅行计划 ★★   输入文件:djs.in   输出文件:djs.out   简单对比时间限制:3 s   内存限制:128 MB [题目描述] 过暑假了,阿杜准备出行旅游,他已经查到了某些城市 ...

  7. cogs 3. 服务点设置 dijkstra

    3. 服务点设置 ★   输入文件:djsa.in   输出文件:djsa.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 为了进一步普及九年义务教育,政府要在某乡镇建 ...

  8. cogs 826. [Tyvj Feb11] GF打dota 次短路详细原创讲解! dijkstra

    826. [Tyvj Feb11] GF打dota ★★☆   输入文件:dota.in   输出文件:dota.out   简单对比时间限制:1 s   内存限制:128 MB 众所周知,GF同学喜 ...

  9. cogs 364. [HDU 1548] 奇怪的电梯 Dijkstra

    364. [HDU 1548] 奇怪的电梯 ★   输入文件:lift.in   输出文件:lift.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 呵呵,有一天我做了 ...

随机推荐

  1. 设计模式-状态模式(State)

    状态模式是行为模式的一种,状态模式允许改变对象内部状态来改变对象的行为. 角色和职责: 1.上下文(Context)-Order:    拥有内部的状态 2.状态接口(Status)-State: 一 ...

  2. Jmeter接口测试实例-牛刀小试

    本次测试的是基于HTTP协议的接口,主要是通过Jmeter来完成接口测试,借此熟悉Jmeter的基本操作. 本次实战,我是从网上找的接口测试项目,该项目提供了详细的接口文档,我们可以通过学习接口文档来 ...

  3. spark 源码分析之十五 -- Spark内存管理剖析

    本篇文章主要剖析Spark的内存管理体系. 在上篇文章 spark 源码分析之十四 -- broadcast 是如何实现的?中对存储相关的内容没有做过多的剖析,下面计划先剖析Spark的内存机制,进而 ...

  4. 详叙BeanWrapper和PropertyDescriptor

    每篇一句 千古以来要饭的没有要早饭的,知道为什么吗? 相关阅读 [小家Spring]聊聊Spring中的数据转换:Converter.ConversionService.TypeConverter.P ...

  5. py+selenium 明明定位不到元素,但却不报错或是报错AttributeError: 'list' object has no attribute 'click'【已解决】

    问题:定位不到元素,但却不报错或者出现报错AttributeError: 'list' object has no attribute 'click' 如图  或者  解决方法:   将”driver ...

  6. Web API POST [FromBody] string value 接受参数

    网上看到很多关于这这个问题的解决方案,但是都不正确,我也恰巧遇到这个问题,所有把正确的解决方案写出来,希望给后来人参考,如有不同意见欢迎指正 namespace WebApi.Controllers ...

  7. Lucene05-分词器

    Lucene05-分词器 1.概念 Analyzer(分词器)的作用是把一段文本中的词按规则取出所包含的所有词.对应的是Analyzer类,这是一个抽象类,切分词的具体规则是由子类实现的,所以对于不同 ...

  8. Excel催化剂开源第16波-VSTO开发之脱离传统COM交互以提升性能

    在VSTO开发或其他COM技术开发过程中,甚至VBA也是,在和Excel交互中,难免会遇到性能瓶颈问题,COM技术的交互实在太慢,对大量数据读写等操作,耗时太长,容易卡用户界面以为是程序死机等等. 在 ...

  9. 关键字static、final

    final final能修饰类.修饰方法.能修饰属性. 修饰类:该类不能被继承. 修饰方法:该方法不能被重写.所以abstract和final不能同时用 修饰属性/变量:该属性/变量为常量,该值不能再 ...

  10. Android系列教程之前言

    内容转载自我自己的博客 目前安卓的主流开发语言是Java,在正式开始Android系列的教程之前,需要知道一些基本内容 Android介绍 Android['ændrɔid] 是一个基于Linux 内 ...