模板题辣很简单的 只有两种val 0 和1

  1. #include <iostream>
  2. #include <string>
  3. #include <cstdio>
  4. #include <cmath>
  5. #include <cstring>
  6. #include <queue>
  7. #include <vector>
  8. #include <set>
  9. #include <algorithm>
  10. #define INF 0x3F3F3F3F
  11. using namespace std;
  12.  
  13. typedef pair<int, int> pii;
  14. struct cmp{
  15. bool operator () (const pii a, const pii b){
  16. return a.first > b.first;
  17. }
  18. };
  19.  
  20. int val[][];
  21. int n, a, b;
  22.  
  23. int dij()
  24. {
  25. int dist[];
  26. priority_queue<pii, vector<pii>, cmp> q;
  27. memset(dist, 0x3f, sizeof dist);
  28. dist[a] = ;
  29. q.push(make_pair(, a));
  30. while(!q.empty()){
  31. pii u = q.top();
  32. q.pop();
  33. //printf("u.second = %d\n", u.second);
  34. if(u.first > dist[u.second]) continue;
  35. for(int i = ; i <= n; i++){
  36. if(dist[i] > dist[u.second] + val[u.second][i]){
  37. dist[i] = dist[u.second] + val[u.second][i];
  38. q.push(make_pair(dist[i], i));
  39. }
  40. }
  41. }
  42. return dist[b] == INF ? - : dist[b];
  43. }
  44.  
  45. int main()
  46. {
  47. memset(val, 0x3f, sizeof val);
  48. scanf("%d%d%d", &n, &a, &b);
  49. for(int i = ; i <= n; i++){
  50. int m, to;
  51. scanf("%d", &m);
  52. if(m == ) continue;
  53. m--;
  54. scanf("%d", &to);
  55. val[i][to] = ;
  56. while(m--){
  57. scanf("%d", &to);
  58. val[i][to] = ;
  59. }
  60. }
  61. printf("%d\n", dij());
  62. return ;
  63. }

kuangbin_ShortPath N (POJ 1847)的更多相关文章

  1. poj 1847 最短路简单题,dijkstra

    1.poj  1847  Tram   最短路 2.总结:用dijkstra做的,算出a到其它各个点要改向的次数.其它应该也可以. 题意: 有点难懂.n个结点,每个点可通向ki个相邻点,默认指向第一个 ...

  2. POJ 1847 Tram (最短路径)

    POJ 1847 Tram (最短路径) Description Tram network in Zagreb consists of a number of intersections and ra ...

  3. 最短路 || POJ 1847 Tram

    POJ 1847 最短路 每个点都有初始指向,问从起点到终点最少要改变多少次点的指向 *初始指向的那条边长度为0,其他的长度为1,表示要改变一次指向,然后最短路 =========高亮!!!===== ...

  4. poj 1847( floyd && spfa )

    http://poj.org/problem?id=1847 一个水题,用来熟悉熟悉spfa和floyd的. 题意:有m条的铁路,要从x,到y, 之后分别就是条铁路与其他铁路的交点.第一个输入的为有n ...

  5. poj 1847 Tram

    http://poj.org/problem?id=1847 这道题题意不太容易理解,n个车站,起点a,终点b:问从起点到终点需要转换开关的最少次数 开始的那个点不需要转换开关 数据: 3 2 1// ...

  6. kuangbin_ShortPath L (POJ 2502)

    dij部分还是跟模板差不多的 但是这题的难点是处理输入 或者说理解题意 事实上每个点之间都是可以走的......WA了好几发就因为没意识到同一条路线上的各个站点之间居然也可以走得比车子快.... PS ...

  7. kuangbin_ShortPath J (POJ 1511)

    其实虽然一开始有被这个题的8000MS 和 256MB限制又被吓到 但是严格来说跟之前的POJ 3268是一样的做法只是数据大了点 但是问题就出在数据大了点上 其实严格来说也不大 1e6 数组加起来大 ...

  8. POJ 1847 dijstra算法

    POJ 无限循环CE中.感觉是读题难.然后就可以建图上模板了. 附个人代码: #include<stdio.h>#include<string.h>#include<io ...

  9. Floyd_Warshall POJ 1847 Tram

    题目传送门 题意:这题题目难懂.问题是A到B最少要转换几次城市.告诉每个城市相连的关系图,默认与第一个之间相连,就是不用转换,其余都要转换. 分析:把第一个城市权值设为0, 其余设为0.然后Floyd ...

随机推荐

  1. tableviewcell的取消选中,高亮

    1.取消多余cell的分割线 UIView *view = [UIView new]; view.backgroundColor = [UIColor clearColor]; [tableView ...

  2. 使用sslsplit嗅探tls/ssl连接

    首先发一个从youtube弄到的sslsplit的使用教程 http://v.qq.com/page/x/k/s/x019634j4ks.html 我最近演示了如何使用mitmproxty执行中间人攻 ...

  3. hdu 2089

    PS:额...暴力打表...今天学到的新名词..记得把数组开到100W.. 代码: #include "stdio.h" ]; int cal(int a); int main() ...

  4. Chapter 4: Tomcat Default Connector

    一.概述 第三章介绍的connector是一个很好的学习工具,但是我们还可以做的更多.这一章介绍的是Tomcat4默认的connector. 一个Tomcat的connector是一个独立的模块,能够 ...

  5. MSDN在线

    https://msdn.microsoft.com/zh-cn/library/aa139615.aspx

  6. ios--NSCalendar NSDateComponents

    原文: ios时间那点事--NSCalendar NSDateComponents http://my.oschina.net/yongbin45/blog/156181 目录[-] iOS时间那点事 ...

  7. ES6:模块简单解释

    modules是ES6引入的最重要的一个特性. 以后写模块的时候就直接按照ES6的modules语法来写 ,然后用babel+browserify 来打包就行了. modules规范分两部分,一部分是 ...

  8. JLOI2010 冠军调查 最小割

    var b,f:..] of longint; s,t,i,j,n,m,x,y:longint; l,h:..]of longint; a:..,..]of longint; procedure bf ...

  9. magento问题集3

    MISSING LANGUAGE FILES OR DIRECTORIES A:已经装了俄语包,也是russian目录,在前台也可以用.但是在后台最上面总是显示MISSING LANGUAGE FIL ...

  10. js控制tr 隐藏 显示

    tr td 外面不要套div <tr> <td>排期确定结果: </td> <td> <label class="liradio&quo ...