HDU-2112-HDU Today

这题的话,坑点挺多的,我也WA了好几次。
首先,对于map,因为是多次使用,所以每次处理完一个图之后就要清空。

其次,就是对于DIjkstra跑图的时候,如果这个图是连通图的话,我们每次选取最小值点是一定可以选到的,但是对于不连通的图,如果任何一个点都不与终点连通,那选取最小值点的时候就一定会选到无穷大点。
所以这时候,如果不对我们之前声明的用来存最小值点标号的变量k赋初值的话,那基本上访问是越界的,k里面的数原本基本上都是几十万,所以我就一直越界啦~
要么就把最小值等于无穷的时候,直接跳出,也是可以的,然后再对vis标记,这样跳出就不会越界了。

而且其实cin读入还挺快的,因为用的是string类,所以用cin读入了,其实直接用scanf读入字符串也是可的。如果关闭cin和stdio的同步,这cin读入相当快。

#include <iostream>
#include <cstring>
#include <string>
#include <map>
using namespace std;
const int INF = 1 << 30;
int n,cnt,flag,t;
int w[160][160];
int d[160];
bool vis[160];
map<string, int> name;void Dijkstra()
{memset(vis, false, sizeof(vis));for (int i = 1; i <= cnt;i++) {d[i] = w[1][i];}vis[1] = 1;d[1] = 0;for (int i = 1; i < cnt; i++){int m=INF, k=0;for (int j = 1; j <= cnt; j++){if (!vis[j] &&m>d[j]) {m=d[j];k = j;}}if (m==INF)break;vis[k] = 1;for (int j = 1; j <= cnt;j++) {if (!vis[j]&&d[j]>d[k]+w[k][j]) {d[j] = d[k] + w[k][j];}}}
}int main()
{ios::sync_with_stdio(false);while (cin>>n&&n!=-1) {if (n==0) {cout << -1 << endl;continue;}for (int i = 0; i < 160;i++) {for (int j = 0; j < 160;j++) {w[i][j] = INF;}}name.clear();cnt = 1;flag = 0;string s, e;cin >> s >> e;if (s==e)flag = 1;name[s] = cnt++;name[e] = cnt++;while (n--) {cin >> s >> e >> t;if (!name[s])name[s] = cnt++;if (!name[e])name[e] = cnt++;if (w[name[s]][name[e]]>t) {w[name[s]][name[e]] = t;w[name[e]][name[s]] = t;}}if (flag) {cout << 0 << endl;continue;}cnt--;Dijkstra();if (d[2]==INF)cout << -1 << endl;elsecout << d[2] << endl;}return 0;
}

转载于:https://www.cnblogs.com/xyqxyq/p/10350138.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual.Assist.X 菜单汉化

在Visual Studio 2010下 使用 Visual.Assist.X.V10.7.1940汉化破解补丁 之后&#xff0c; 细心的朋友会发现&#xff1a;Visual Studio的菜单内还是英文的。其实这个也是可以汉化的&#xff0c;方法如下&#xff1a; 在Microsoft Visual Studio的菜单上右键单击 -》 选择最后…

[vue] 说说你对vue的template编译的理解?

[vue] 说说你对vue的template编译的理解&#xff1f; 将template里的组件编译成虚拟dom个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

Visual.Assist.X.V10.7.1946的汉化破解补丁

Visual Assist X V10.7.1946的汉化破解补丁&#xff0c;方便各位朋友。 本博客会跟踪升级&#xff0c;请留意。 关于菜单的汉化请看&#xff1a;http://blog.csdn.net/afu45/article/details/9145293 汉化方法 先安装英文原版软件。下载地址&#xff1a;http://www.wholeto…

[vue] axios是什么?怎样使用它?怎么解决跨域的问题?

[vue] axios是什么&#xff1f;怎样使用它&#xff1f;怎么解决跨域的问题&#xff1f; axios 的是一种异步请求&#xff0c;用法和ajax类似&#xff0c;安装npm install axios --save 即可使用&#xff0c;请求中包括get,post,put, patch ,delete等五种请求方式&#xff0c;解…

iOS 10 之后权限设置

iOS 10 之后权限设置 麦克风权限&#xff1a;Privacy - Microphone Usage Description 是否允许此App使用你的麦克风&#xff1f; 相机权限&#xff1a; Privacy - Camera Usage Description 是否允许此App使用你的相机&#xff1f; 相册权限&#xff1a; Privacy - Photo Libr…

高晓松脱口秀--晓说(第一季第二季)mp3下载

首先推荐一款不错的路由器 399元返399元 相当于 0元购&#xff01; 具体我就不多说了&#xff0c;请点这里 晓说 第一季 (1-5) http://pan.baidu.com/share/link?shareid480859&uk4043605559 (6-10) http://pan.baidu.com/share/link?shareid480864&uk4043605559…

[vue] 你了解axios的原理吗?有看过它的源码吗?

[vue] 你了解axios的原理吗&#xff1f;有看过它的源码吗&#xff1f; 1.axios通过对Promise的封装实现异步请求&#xff1b; 2. if(answer 有){ if(这个问题到此为止){ return ‘有’; }else{ return 没; } }个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放…

android下获取无线wif信号、ssid、MAC等操作类

一个android下获取无线wif信号、ssid、MAC等操作的类。 WifiAdmin.java package com.afu;import java.util.List;import android.content.Context;import android.net.wifi.ScanResult;import android.net.wifi.WifiConfiguration;import android.net.wifi.WifiInfo;import …

[vue] 为何官方推荐使用axios而不用vue-resource?

[vue] 为何官方推荐使用axios而不用vue-resource&#xff1f; 1.vue-resources不再更新了&#xff0c;vue作者尤大推荐axios。 2.axios更加强大 3.axios就是一个基于ES6的Promise的网络请求库&#xff0c;其实说干净了就是一个打包好的XMLHttpRequests&#xff0c;也就是说&am…

Java基础学习-IO流

package IObasics; import java.io.FileWriter; import java.io.IOException;/*IO流* 通过数据流、序列化和文件系统提供系统输入和输出。 * 文件上传&#xff0c;复制文件&#xff0c;下载文件* 输出流&#xff1a;* java.io 类 FileWriter构造方法详细信息 &…

Visual.Assist.X.V10.7.1949的汉化破解补丁

Visual Assist X V10.7.1949的汉化破解补丁&#xff0c;方便各位朋友。 本博客会跟踪升级&#xff0c;请留意。 关于菜单的汉化请看&#xff1a;http://blog.csdn.net/afu45/article/details/9145293 汉化方法 先安装英文原版软件。下载地址&#xff1a;http://www.wholeto…

[vue] 使用vue开发过程你是怎么做接口管理的?

[vue] 使用vue开发过程你是怎么做接口管理的&#xff1f; 创建一个request.js用于封装axios&#xff0c;在 src/api/request&#xff0c;设置拦截器统一处理请求和相应。封装 axios&#xff1a;request.js&#xff1a;import axios from axios import {Message, Loading} from…

金士顿 8G u盘 红色 量产记录

找了好多教程&#xff0c;只有这个成功了&#xff0c;记录下来 逻辑盘符 : H:\ 此分区容量: 7.1G 设备ID : VID 0951 PID 1642 设备序列号: 001CC0EC348CBBB170000294 设备版本 : PMAP 设备制造商: Kingston 设备型号 : DT 101 G2 当…

微信小程序点击跳转出现背景

解决办法&#xff1a; 1、在navigater标签上加上 hover-class“none” 2、在标签css样式中加上backgroud&#xff1a;none&#xff1b; 转载于:https://www.cnblogs.com/weiyunblogs/p/10304045.html

[vue] 如何引入scss?引入后如何使用?

[vue] 如何引入scss&#xff1f;引入后如何使用&#xff1f; 安装scss依赖包&#xff1a; npm install sass-loader --save-dev npm install node-sass --save-dev 在build文件夹下修改 webpack.base.conf.js 文件&#xff1a; 在 module 下的 rules 里添加配置&#xff0c;如…

支付宝手机网站支付 错误代码 insufficient-isv-permissions 错误原因: ISV权限不足

在集成支付宝 手机网站支付 时&#xff0c;明明已经签约了&#xff0c;调用却报错 错误代码 insufficient-isv-permissions 错误原因: ISV权限不足解决办法&#xff1a; 登录开放平台 -> 研发管理-> 我的应用-> 找到对应的应用 点查看-> 功能信息 将里面的手机…

[vue] vue和angular有什么区别呢?

[vue] vue和angular有什么区别呢&#xff1f; Vue.js - 多样化的 JavaScript 框架 作为一个跨平台的&#xff0c;高度进步的框架&#xff0c;Vue 成为了许多需要创建单页应用程序的开发人员的首选。在用于开发 Web 应用程序的典型 MVC 体系结构中&#xff0c;Vue 充当了 View…

HTML 禁止数字因被自动识别为手机号,而被添加拨号链接样式

现象 明明写的一串数字没加链接样式&#xff0c;而iPhone会自动把你这个文字加链接样式、并且点击这个数字还会自动拨号。 解决 在html头加入以下代码&#xff1a; <meta name"format-detection" content"telephoneno" /> telephoneno就禁止了把数字…

[vue] vue生命周期的作用是什么?

[vue] vue生命周期的作用是什么&#xff1f; 准确地控制数据流和其对DOM的影响个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

[vue] vue生命周期总共有几个阶段?

[vue] vue生命周期总共有几个阶段&#xff1f; beforeCreate&#xff1a;在 new 一个 vue 实例后&#xff0c;只有一些默认的生命周期钩子和默认事件&#xff0c;其他的东西都还没创建。created&#xff1a;data 和 methods 都已经被初始化好了。&#xff08;如果要调用 method…