PAT-GPLT训练集 L2-001 紧急救援(最短路)
题目大意:求最短路的条数,最短路中的权重和的最大值和这条最短路的路线
分析:使用dijkstra算法求出最短路,并且对dijkstra算法进行变化,设起点为s,数量num[MAX_N],权重w[MAX_N],路径path[MAX_N];
当d[i] > d[k] + es[k][i]时,说明这是一条k到i更短的路,那么这时需要进行操作:num[i] = num[k]; w[i] = w[k] + weight[i]; path[i] = k;
当d[i] == d[k] + es[k][i]时,说明这又是一条到i结点的最短路,那么num[i] += num[k]; 那么这时需要考虑权重的大小,选择权重和更大的一条最短路,并修改path和权重w
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int INF = ;
const int MAX_N = +;
int es[MAX_N][MAX_N];
int weight[MAX_N];
int d[MAX_N];
bool used[MAX_N];
int path[MAX_N];
int w[MAX_N];
int num[MAX_N];
int V, E, S, D;
void dijkstra() {
fill(d, d + V, INF);
fill(used, used + V, false);
d[S] = ;
num[S] = ;
w[S] = weight[S];
while() {
int k = -;
for(int i = ; i < V; i++) {
if(!used[i] && (k == - || d[k] > d[i])) k = i;
}
if(k == -) break;
used[k] = true;
for(int i = ; i < V; i++) {
if(d[k] + es[k][i] < d[i]) {
d[i] = d[k] + es[k][i];
num[i] = num[k];
path[i] = k;
w[i] = w[k] + weight[i];
}
else if(d[k] + es[k][i] == d[i]) {
num[i] += num[k];
if(w[i] < w[k] + weight[i]) {
w[i] = w[k] + weight[i];
path[i] = k;
}
}
}
}
}
void get_path(int D) {
if(D == S) {
printf("%d", S);
return;
}
get_path(path[D]);
printf(" %d", D);
}
int main() {
cin >> V >> E >> S >> D;
for(int i = ; i < V; i++) {
for(int j = ; j < V; j++) {
es[i][j] = INF;
}
}
for(int i = ; i < V; i++) cin >> weight[i];
int a, b, len;
for(int i = ; i < E; i++) {
cin >> a >> b >> len;
es[a][b] = es[b][a] = len;
}
dijkstra();
printf("%d %d\n", num[D], w[D]);
get_path(D);
return ;
}
PAT-GPLT训练集 L2-001 紧急救援(最短路)的更多相关文章
- LUA中将未分类数据分为测试集和训练集
require 'torch' require 'image' local setting = {parent_root = '/home/pxu/image'} function list_chil ...
- 训练集(train set) 验证集(validation set) 测试集(test set)
转自:http://www.cnblogs.com/xfzhang/archive/2013/05/24/3096412.html 在有监督(supervise)的机器学习中,数据集常被分成2~3个, ...
- 从一到二:利用mnist训练集生成的caffemodel对mnist测试集与自己手写的数字进行测试
通过从零到一的教程,我们已经得到了通过mnist训练集生成的caffemodel,主要包含下面四个文件: 接下来就可以利用模型进行测试了.关于测试方法按照上篇教程还是选择bat文件,当然python. ...
- 利用VGG19实现火灾分类(附tensorflow代码及训练集)
源码地址 https://github.com/stephen-v/tensorflow_vgg_classify 1. VGG介绍 1.1. VGG模型结构 1.2. VGG19架构 2. 用Ten ...
- [DeeplearningAI笔记]改善深层神经网络1.1_1.3深度学习使用层面_偏差/方差/欠拟合/过拟合/训练集/验证集/测试集
觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 训练/开发/测试集 对于一个数据集而言,可以将一个数据集分为三个部分,一部分作为训练集,一部分作为简单交叉验证集(dev)有时候也成为验 ...
- 【OCR技术系列之三】大批量生成文字训练集
放假了,终于可以继续可以静下心写一写OCR方面的东西.上次谈到文字的切割,今天打算总结一下我们怎么得到用于训练的文字数据集.如果是想训练一个手写体识别的模型,用一些前人收集好的手写文字集就好了,比如中 ...
- 机器学习在入侵检测方面的应用 - 基于ADFA-LD训练集训练入侵检测判别模型
1. ADFA-LD数据集简介 ADFA-LD数据集是澳大利亚国防学院对外发布的一套主机级入侵检测数据集合,包括Linux和Windows,是一个包含了入侵事件的系统调用syscall序列的数据集(以 ...
- 训练集(train set),验证集(validation set)和测试集(test set)
把数据集分为三部分,分别为:训练集(train set),验证集(validation set)和测试集(test set). 具体比例有各种说法.待补充 测试集是为了测模型泛化能力,不能在训练的时候 ...
- 机器学习基础:(Python)训练集测试集分割与交叉验证
在上一篇关于Python中的线性回归的文章之后,我想再写一篇关于训练测试分割和交叉验证的文章.在数据科学和数据分析领域中,这两个概念经常被用作防止或最小化过度拟合的工具.我会解释当使用统计模型时,通常 ...
随机推荐
- x1c2017 8G版 win linux的取舍纠结记录
x1c 2017 的 i5 7200U 8G ram 的丐版.换了1T SSD.其实一般使用没啥问题. 1 外出携带的轻便性太满意(mac13寸相比之下都太重了): 2 coding时候的安静性,比原 ...
- [C#]读取不同版本的excel文件的方法
--------------------------------2007及以上的版本-------------------------------- 测试如下: //DataInterface.Met ...
- python如何判断一个字符串是中文,还是英文。
参考链接: https://blog.csdn.net/hit0803107/article/details/52885702 decode: 将其它编码转成 ===>unicode enc ...
- SSD固态硬盘是会掉速的。
也没什么好的办法. 只是自己不再疑神疑鬼,总觉得中病毒了. 下面的文章还是挺有参考意义的. http://diy.pconline.com.cn/627/6271636_all.html SSD变慢了 ...
- Getting started with Processing 第十一章——数组
Getting started with Processing 第十一章——数组 从变量到数组: 使用数组,无需为每一个变量创建一个新的名称/这让代码变得更短,更容易理解,更方便更新. 创建数组的三个 ...
- .NET的关于人脸识别引擎分享(C#)
https://www.cnblogs.com/RainbowInTheSky/p/10247921.html
- English trip M1 - PC7 Can I Borrow Your Ping-Pong? Teacher:Patrick
In this lesson you will learn to desribe abilities. 这节课你将学习到描述你的能力 课上内容(Lesson) 三种常见情态动词 can aux. 能 ...
- FreeBSD之基本配置
1. 设置IP地址.网关ee /etc/rc.conf ifconfig_em0="inet 192.168.21.173 netmask 255.255.255.0" #设置 ...
- Lab 1-3
Lab 1-3 Analyze the file Lab01-03.exe. Questions and Short Answers Upload the Lab01-03.exe file to h ...
- Hadoop-2.3.0的Eclipse插件编译
Hadoop-2.3.0的Eclipse插件编译 #cd /usr/local/src/hadoop2x-eclipse-plugin-master/src/contrib/eclipse-plugi ...