2017-09-17 17:37:03

writer:pprp

dijkstra模板题目,注意去重

代码如下:

  1. /*
  2. @theme:poj 2387
  3. @declare:最短路,从N到1点
  4. @writer:pprp
  5. @date:2017/9/17
  6. */
  7. #include <iostream>
  8. #include <cstring>
  9. #include <cstdio>
  10. #include <stack>
  11.  
  12. using namespace std;
  13. int N, T, Min;
  14. const int maxn = ;
  15. const int INF = 0x3f3f3f3f;
  16. int mp[maxn][maxn];
  17. bool vis[maxn];
  18. int dis[maxn];
  19.  
  20. void Dijkstra(int st)
  21. {
  22. for(int i = ; i <= N; i++)
  23. {
  24. dis[i] = mp[st][i];
  25. }
  26.  
  27. vis[st] = ;
  28. dis[st] = ;
  29.  
  30. int rec = -;
  31. for(int i = ; i <= N ; i++)//起到了循环的作用
  32. {
  33. Min = INF;
  34. rec = -;
  35. for(int j = ; j <= N; j++)
  36. {
  37. if(!vis[j] && Min > dis[j])
  38. {
  39. rec = j;
  40. Min = dis[j];
  41. }
  42. }
  43. if(rec == -)return ;
  44.  
  45. vis[rec] = ;
  46.  
  47. for(int j = ; j <= N; j++)
  48. {
  49. if(!vis[j] && mp[rec][j] != INF && dis[rec] + mp[rec][j] < dis[j])
  50. dis[j] = mp[rec][j] + dis[rec];
  51. }
  52. }
  53. }
  54.  
  55. int main()
  56. {
  57. freopen("in.txt","r",stdin);
  58. int x, y, v;
  59. cin >> T >> N;
  60.  
  61. for(int i = ; i < maxn; i++)
  62. for(int j = ; j < maxn; j++)
  63. mp[i][j] = INF;
  64. memset(vis,,sizeof(vis));
  65.  
  66. for(int i = ; i < T ; i++)
  67. {
  68. cin >> x >> y >> v;
  69. if(v < mp[x][y])//去重
  70. mp[x][y] = mp[y][x] = v;
  71. }
  72.  
  73. Dijkstra();
  74. cout << dis[N] << endl;
  75.  
  76. return ;
  77. }

解题报告:poj2387 dijkstra的更多相关文章

  1. POJ 3126 Prime Path 解题报告(BFS & 双向BFS)

    题目大意:给定一个4位素数,一个目标4位素数.每次变换一位,保证变换后依然是素数,求变换到目标素数的最小步数. 解题报告:直接用最短路. 枚举1000-10000所有素数,如果素数A交换一位可以得到素 ...

  2. GX/GZOI2019 day2 解题报告

    GX/GZOI2019 day2 解题报告 题目链接 逼死强迫症 旅行者 旧词 t1 逼死强迫症 显然地,记 \(f(i)\) 为长度为 \(i\) 的木板的答案,可得: \(\\\) \[f(i)= ...

  3. 「ZJOI2016」解题报告

    「ZJOI2016」解题报告 我大浙的省选题真是超级神仙--这套已经算是比较可做的了. 「ZJOI2016」旅行者 神仙分治题. 对于一个矩形,每次我们从最长边切开,最短边不会超过 \(\sqrt{n ...

  4. 北大ACM试题分类+部分解题报告链接

    转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 部分解题报告添加新内容,除了原有的"大致题意&q ...

  5. 【LeetCode】743. Network Delay Time 解题报告(Python)

    [LeetCode]743. Network Delay Time 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: ht ...

  6. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  7. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  8. BZOJ 1051 最受欢迎的牛 解题报告

    题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4438  Solved: 2353[S ...

  9. 习题:codevs 2822 爱在心中 解题报告

    这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...

  10. 习题:codevs 1035 火车停留解题报告

    本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...

随机推荐

  1. Spring AOP和事务的相关陷阱

    1.前言 2.嵌套方法拦截失效 2.1 问题场景 2.2 解决方案 2.3 原因分析 2.3.1 原理 2.3.2 源代码分析 3.Spring事务在多线程环境下失效 3.1 问题场景 3.2 解决方 ...

  2. 草莓糖CMT依旧强势,数字货币量化分析[2018-05-29]

    [分析时间]2018-05-29 17:45 [报告内容]1 BTC中期     MA 空头排列中长     MA 空头排列长期     MA 空头排列 2 LTC中期     MA 空头排列中长   ...

  3. 素数筛法—时间复杂度O(n)

    请你想出一个算法求出n以内(含n)的所有素数,要求算法的时间复杂度越小越好. 这里介绍一种算法——快速线性素数筛法(欧拉筛法),时间复杂度O(n). 诀窍在于:筛除合数时,保证每个合数只会被它的最小质 ...

  4. 剑指Offer——删除链表中重复的结点

    题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理 ...

  5. OCR技术浅探: 光学识别(3)

    经过前面的文字定位和文本切割,我们已经能够找出图像中单个文字的区域,接下来可以建立相应的模型对单字进行识别. 模型选择 在模型方面,我们选择了深度学习中的卷积神经网络模型,通过多层卷积神经网络,构建了 ...

  6. linux根文件系统 /etc/resolv.conf 文件详解(转)

    大家好,今天51开源给大家介绍一个在配置文件,那就是/etc/resolv.conf.很多网友对此文件的用处不太了解.其实并不复杂,它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名 ...

  7. js 根据json数组中n个字段排序

    function compare(name, minor) { return function (o, p) { var a, b; if (o && p && typ ...

  8. hashmap,ConcurrentHashMap与hashtable的区别

    1.hashmap与hashtable的区别 1.我们从他们的定义就可以看出他们的不同,HashTable基于Dictionary类,而HashMap是基于AbstractMap.Dictionary ...

  9. iOS学习之Objective-C 2.0 运行时系统编程

    0 导言 本主主要内容包括: 1.概述2.参考3.运行时系统的版本和平台4.和运行时系统的交互5.消息6.动态方法解析7.消息转发8.类型编码9.属性声明 1 概述 Objective-C语言将决定尽 ...

  10. cocos2dx 3.x 触摸事件

    单点触摸: bool onTouchBegan(cocos2d::Touch *pTouch, cocos2d::Event *pEvent); void onTouchMoved(cocos2d:: ...