题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1019

题目大意:Tanvir想从节点1的位置走到节点n的位置, 输出最短距离, 如果不存在输出"Impossible".

解题思路:dijkstra模版题

代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL; const int INF = 0x3f3f3f3f;
const int N = ;
int dis[N];
vector<pair<int, int> > vec[N];
priority_queue<pair<int, int>, vector<pair<int, int> >, greater<pair<int, int> > >que; void dijkstra()
{
dis[] = ;
que.push(make_pair(, ));
while(!que.empty())
{
pair<int, int> p = que.top();
que.pop();
int v = p.second;
if(dis[v] < p.first)
continue; for(int i=; i<vec[v].size(); ++ i)
{
pair<int, int> t = vec[v][i];
if(dis[t.second] > dis[v] + t.first)
{
dis[t.second] = dis[v] + t.first;
que.push(make_pair(dis[t.second], t.second));
}
}
}
}
void solve(int cases)
{
for(int i=; i<=; ++ i)
{
dis[i] = INF;
vec[i].clear();
} while(!que.empty())
que.pop(); int n, m;
scanf("%d%d", &n, &m);
for(int i=; i<=m; ++ i)
{
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
vec[u].push_back(make_pair(w, v));
vec[v].push_back(make_pair(w, u));
} dijkstra();
if(dis[n] == 0x3f3f3f3f)
printf("Case %d: Impossible\n", cases);
else
printf("Case %d: %d\n", cases, dis[n]);
} int main()
{
int T;
scanf("%d", &T);
for(int i=; i<=T; ++ i)
solve(i);
return ;
}

Light OJ 1019 - Brush (V)(图论-dijkstra)的更多相关文章

  1. light oj 1019【最短路模板】

    1019 - Brush (V) PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Tanvir r ...

  2. Lightoj 1019 - Brush (V)

    算出从点1到点n的最短路径. /* *********************************************** Author :guanjun Created Time :2016 ...

  3. Light OJ - 1026 - Critical Links(图论-Tarjan算法求无向图的桥数) - 带详细注释

     原题链接   无向连通图中,如果删除某边后,图变成不连通,则称该边为桥. 也可以先用Tajan()进行dfs算出所有点 的low和dfn值,并记录dfs过程中每个 点的父节点:然后再把所有点遍历一遍 ...

  4. Light OJ 1018 - Brush (IV)

    题目大意:     一个二维平面上有N个点,一把刷子,刷一次可以把一条线上的所有点都刷掉.问最少刷多少次,可以把全部的点都刷完 状态压缩DP, 用记忆化搜索来写, 需要有个优化不然会超时. ===== ...

  5. Light OJ 1017 - Brush (III)

    题目大意:     在一个二维平面上有N个点,散落在这个平面上.现在要清理这些点.有一个刷子刷子的宽度是w. 刷子上连着一根绳子,刷子可以水平的移动(在X轴方向上).他可以把刷子放在任何一个地方然后开 ...

  6. Light oj 1018 - Brush (IV) 状态压缩

    题目大意: 给出n个点的坐标,求至少画多少掉直线才能连接所有点. 题目思路:状态压缩 首先经行预处理,求出所有状态下,那些点不在该状态内 以任意两点为端点求出这条直线的状态 枚举所有状态,找出不在当前 ...

  7. Light OJ 1316 A Wedding Party 最短路+状态压缩DP

    题目来源:Light OJ 1316 1316 - A Wedding Party 题意:和HDU 4284 差点儿相同 有一些商店 从起点到终点在走过尽量多商店的情况下求最短路 思路:首先预处理每两 ...

  8. Light OJ 1429 Assassin`s Creed (II) BFS+缩点+最小路径覆盖

    题目来源:Light OJ 1429 Assassin`s Creed (II) 题意:最少几个人走全然图 能够反复走 有向图 思路:假设是DAG图而且每一个点不能反复走 那么就是裸的最小路径覆盖 如 ...

  9. Light OJ 1406 Assassin`s Creed 减少国家DP+支撑点甚至通缩+最小路径覆盖

    标题来源:problem=1406">Light OJ 1406 Assassin`s Creed 意甲冠军:向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路: ...

随机推荐

  1. tomcat内存溢出 PermGen space

    1. java.lang.OutOfMemoryError: PermGen space  ---- PermGen space溢出.  PermGen space的全称是Permanent Gene ...

  2. Shell 显示带颜色字体

    格式: echo "/033[字背景颜色;字体颜色m字符串/033[控制码"如果单纯显示字体颜色可以固定控制码位0m.格式: echo "/033[字背景颜色;字体颜色m ...

  3. Hololens开发笔记之Gesture手势识别(单击,双击)

    本文使用手势识别实现识别单击及双击手势的功能,当单击Cube时改变颜色为蓝色,当双击Cube时改变颜色为绿色. 手势识别是HoloLens交互的重要输入方法之一.HoloLens提供了底层API和高层 ...

  4. python中threading模块详解(一)

    python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...

  5. AsynTask用法

    http://blog.csdn.net/liuhe688/article/details/6532519 在Android中实现异步任务机制有两种方式,Handler和AsyncTask. Hand ...

  6. 另一种遍历Map的方式: Map.Entry 和 Map.entrySet()

    源网址: http://blog.csdn.net/mageshuai/article/details/3523116 今天看Think in java 的GUI这一章的时候,里面的TextArea这 ...

  7. js 字符串截取

    substr方法: text.substr(start[,length]); text:要提取子字符串的字符串或String对象.必选 start:子字符串的起始位置.以0开始索引.必选 length ...

  8. 每天一个 Linux 命令(7):mv命令

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...

  9. EF 示例

    EF有三种数据库访问方式,这里只介绍Code First. 1.DB First,类似Linq to sql中拖拽一个DB到方案中 2.Model First,没试过,不能自动生成数据库只能生成表 3 ...

  10. Struts2.3.4+Hibernate4.2.4+Mysql6.0整合

    1.项目搭建过程: (1). 创建一个Web Project.导入Struts2和Hibernate的jar包.(如果不知道Struts2的jar包,可以在下载的struts的jar包中,找到apps ...