Daizi's path system

本文介绍了一个基于图论的最短路径查询系统的实现方法,该系统能够接收多个查询请求并返回两点间最短路径的长度。通过使用Floyd算法预处理所有点对间的最短路径,系统可以高效地响应查询。

http://cs.scu.edu.cn/soj/problem.action?id=2427
题目
 呆子是个没有方向感的人,经常在科大校园内迷路,所以他经常手里拿着一张 地图。每天呆子都在科大校园内转来转去,寻找新奇的人和事物,但是呆子 不是一个喜欢浪费时间的人,每次转悠的时候,他总想找到一条从起点到终点 的最短路。现在这个任务就交给了你,希望你给呆子设计一个查询系统, 呆子每次只需要输入起点和终点,你就要告诉呆子这两点间的最短路是什么。

输入

 输入可能有多组。 每组输入的第一行包括两个数字 n和m,其中1 <= n <= 100,表示地图上 的路口的个数(呆子只会从一个路口到另外一个路口),0 <= m < n(n-1)/2, 表示图上的小路的个数,每条小路连接一对路口。 如果m > 0,那么后面将紧跟m行,每行包括三个整数,分别是这条路连接 的两个路口i,j(1<=i,j<=n)和这条路的长度L(1<=L<=1000)。
 
我们保证,输入的地图都是对的,而且没有两个路口之间存在两条或以上 的路,每条路的长度都是正的,还有这里的路都是双向的,没有一条路 是连接两个相同的路口。 紧接下来的一行是一个整数100000 > k > 0,表示有多少次查询。 紧接下来的k行,每行由两个整数i,j组成,表示查询这两个路口之间的最短路 的长度。(1 <= i,j <= n) 最后一组输入保证 n = 0, 这组输入不需要处理。

输出
 对每组输入的每个查询,单独使用一行来输出查询结果:如果两个路口之间 存在一条路,输出其最短路的长度;否则输出“pity”(引号不用输出)。 每组输出使用一个空行作为结尾。
输入例子
3 3
1 2 1
2 3 1
1 3 1
2
1 2
1 3
 3 3
 1 2 1
 2 3 1
 1 3 1
 2
 1 2
 1 3
 0 0
输出例子
 1
 1

 1
 1
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#include<stdio.h>
#include<iostream>
#define NN 200000000
int main()
{
int i,j,k,m,n,x,y,z;
int map[105][105];
while(scanf("%d%d",&m,&n),m,n)
{
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
map[i][j]=NN;

for(i=0;i<n;i++)
{
scanf("%d%d%d",&x,&y,&z);
if(map[x][y]>z)
map[y][x]=map[x][y]=z;
}
for(i=1;i<=m;i++)
map[i][i]=0;
for(k=1;k<=m;k++)
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
if(map[i][j]>map[i][k]+map[k][j])
map[i][j]=map[i][k]+map[k][j];
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&x,&y);
if(map[x][y]<NN)
printf("%d\n",map[x][y]);
else
printf("pity\n");
}
printf("\n");
}
return 0;
}

4. 实验与结果(Experiments and Results) 实验设置(Experimental Setup) 硬件环境: 本实验的训练环境为:11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz 2.42 GHz,16G内存 。 软件环境: 操作系统:Ubuntu 20.04 LTS 深度学习框架:TensorFlow 2.0、Keras 图像处理库:OpenCV、PIL(Python Imaging Library) 数据库:MySQL,用于存储仓库管理系统的物品数据和库存信息。 数据集: 训练数据集:本实验使用的是自建的仓库图像数据集,包含不同类别的物品(如箱子、袋子、瓶子等)及其标签。数据集包括5000张带有物品位置标签的仓库图像。 验证数据集:从训练数据集中随机选取1000张图像作为验证集,确保训练的泛化能力。 测试数据集:独立的1000张测试图像,用于测试模型在真实环境中的表现。 评估指标: 准确率(Accuracy):表示所有预测中,正确预测的比例。 召回率(Recall):表示模型能正确识别的正样本比例。 F1分数(F1 Score):综合考虑准确率与召回率的指标,尤其适用于类别不平衡的情况。 模型训练与验证(Model Training and Validation) 训练过程: 采用**卷积神经网络(CNN)**进行物品检测与分类。首先进行数据预处理,如图像的裁剪、缩放及归一化等,之后将处理后的数据输入到CNN模型进行训练。 **YOLO(You Only Look Once)**模型用于实时目标检测,其训练过程包括前向传播、损失计算(使用交叉熵损失函数),并通过反向传播优化权重。 在训练过程中,使用了数据增强技术(如旋转、镜像、亮度调整等)来增加数据的多样性,提高模型的泛化能力。 学习曲线: 训练过程中监控模型的学习曲线,记录每个epoch的训练损失与验证损失。经过若干次迭代,模型损失趋于平稳,准确率逐渐提高。 性能对比: 为了评估模型的性能,我们比较了YOLO与其他几种常见的深度学习模型(如ResNet和VGG)的训练结果。实验结果表明,YOLO在目标检测任务中表现最优,训练时间较短,并且能够同时检测多个物体。 系统实现与测试(System Implementation and T
05-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值