Dijk入门(杭电2544题)
#include<iostream>
#include<cstring>
using namespace std;
#define INF 0x3f3f3f3f
int n,m;
int map[][];
int vis[];
int stemp[];
int dijk(){
memset(vis,,sizeof(vis));
vis[]=; //标记第一个已选
memset(stemp,,sizeof(stemp));
int min;
int flag1=,countx=,county,index2;
while(county!=n){//如果是联通图那最先遍历到的就是最小的
for(int i=;i<=n;i++){//第一重循环寻找可以扩展的点
if(vis[i]){
min=INF;
for(int j=;j<=n;j++){//第二重循环找到该点最短的扩展点
if(!vis[j]&&min>map[i][j]){
index2=j;
min=map[i][j];
}
}
}
if(vis[i]&&min+stemp[i]<stemp[countx]+flag1){ //比较每个点的最小扩展点,选出总距离最短的标记该点和对应的扩展点
flag1=min;
countx=i;
county=index2;
}
}
// cout<<"!"<< flag1<<' '<<countx<<' '<<county<<endl;
map[county][countx]=INF;//一但往前走就不存在回溯
stemp[county]=flag1+stemp[countx];//记录每一个已选的路程
vis[county]=;
flag1=INF;//初始化第一个点满足条件
countx=;
}
return stemp[n];
}
int main(){
while(cin>>n>>m){
if(!n&&!m) break;
memset(map,INF,sizeof(map));
while(m--){
int a,b,c;
cin>>a>>b>>c;
map[a][b]=c;
map[b][a]=c;
}
cout<<dijk()<<endl;
}
}
Dijk入门(杭电2544题)的更多相关文章
- acm入门 杭电1001题 有关溢出的考虑
最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...
- 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”
按 被中科大软件学院二年级研究生 HCOONa 骂为“误人子弟”之后(见:<中科大的那位,敢更不要脸点么?> ),继续“误人子弟”. 问题: 题目:(感谢 王爱学志 网友对题目给出的翻译) ...
- Help Johnny-(类似杭电acm3568题)
Help Johnny(类似杭电3568题) Description Poor Johnny is so busy this term. His tutor threw lots of hard pr ...
- 杭电oj2093题,Java版
杭电2093题,Java版 虽然不难但很麻烦. import java.util.ArrayList; import java.util.Collections; import java.util.L ...
- 杭电ACM题单
杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最 ...
- 杭电dp题集,附链接还有解题报告!!!!!
Robberies 点击打开链接 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和- 把状态转移方程写成了f ...
- 杭电的题,输出格式卡的很严。HDU 1716 排列2
题很简单,一开始写代码,是用整数的格式写的,怎么跑都不对,就以为算法错了,去看大佬们的算法STL全排列:next_permutation(); 又双叒叕写了好几遍,PE了将近次,直到跑了大佬代码发现, ...
- 杭电60题--part 1 HDU1003 Max Sum(DP 动态规划)
最近想学DP,锻炼思维,记录一下自己踩到的坑,来写一波详细的结题报告,持续更新. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Problem ...
- 杭电21题 Palindrome
Problem Description A palindrome is a symmetrical string, that is, a string read identically from le ...
随机推荐
- Linux shellcode sample
Linux shellcode sample HelloWorld.nasm ;HelloWorld.asm ;Author: Kul Subedi global _start section .te ...
- Linux(17):Shell编程(4)
案例1:批量生成随机字 符 文件名案例 使用for 循环在 /neo 目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串 neo创建的结果名称示例 如下: [root ...
- css复杂动画(animation属性)
1.声明:@keyframes name{ }: 2.涉及到的属性 animation-name:动画名称 animation-duration:单次动画总时长 animation-timing- ...
- 为SourceInsight添加多行注释功能菜单
由于项目看代码主要使用的是Source Insight,习惯了其他编辑器的多行注释功能,对此感到很不习惯,查询网上程序,可以自行添加. 1.打开project,选择base项目中的utils.em,添 ...
- JS实现table表格在鼠标移动出现一行变色或者十字叉变色
1,一行变色 <script> function trBg(){ var tab=document.getElementById("table"); var tr=ta ...
- Linux操作系统的常用命令(一)
一.写随笔的原因:上次提到centos7.3安装mysql5.7的一些步骤,恰巧最近面试有碰到一些问LInux操作的常用操作的问题,想通过这篇文章MARK一下,不一定能够全,只是用的比较多的吧(lin ...
- MySQL 中 EXISTS 的用法
在MySQL中 EXISTS 和 IN 的用法有什么关系和区别呢? 假定数据库中有两个表 分别为 表 a 和表 b create table a ( a_id int, a_name varchar( ...
- 关于Linux系统下基于Tomcat部署和升级war包的详细过程
1.首先Linux先安装java,Tomcat 中间件规范要求: 1) 软件必须下载到/services/download_soft_v --------(用xftp上传 ...
- zk和eureka的区别(CAP原则)
作为服务注册中心,Eureka比Zookeeper好在哪里 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性).A(可用性)和P(分区容错性).由于分区容错性在是分布式系统中必须要保证的, ...
- 从0开始Jmeter接口测试实战
在之前的文章中给大家介绍过接口测试文档和接口测试用例示例,本文基于Jmeter工具给大家介绍一下如何实现接口测试用例:包括发起Http请求,绕过登陆,验证响应.JMeter是Apache组织开发的基于 ...