首师大附中互测题:50136142WXY的坑爹百度地图【B006】(可以喝的超大桶水)
【B006】50136142WXY的坑爹百度地图【难度B】——————————————————————————————————————————————————————————————————————————
【题目要求】
输出描述的链接 and其他说明的链接 社团里的WXY童鞋今天要出去旅游啦(他现在在北京为1号城市),决定去朝鲜平壤(N号城市)装逼。但是很穷的WXY没有钱坐飞机,只好坐汽车去朝鲜了。但是车上的百度地图十分不给力,每回不是把WXY带到了山顶上就是带到了下水道里(WXY的车能开进下水道,真是666666)。WXY被百度导航整得苦不堪言。还好WXY大神事先准备了一张有N个节点,M条公路的只有火星人才能看懂的图。作为大神的WXY才懒得去计算这么简单的问题呢,所以他强制你帮他计算从北京到平壤的最短路径是什么。(否则你就会被WXY打死
快开始计算吧。)
【输入要求】
*第一行:两个数N与M代表有N个城市,M条公路。
*接下来的M行:每行有三个数a,b,c代表城市a,b之间有一条长度为c的公路。
【输入示例】
5 8
1 2 2
1 5 10
2 3 3
2 5 7
3 1 4
3 4 4
4 5 5
5 3 3
【输出要求】
*还是就一个数,不知知道是什么的按前面的链接。
【输出示例】
9
【其它要求】
LJX认为N与M不会太大(点击前面的链接查看什么叫不会太大)
【试题分析】
这个问题由于要求很宽松,所以这里不再使用最短路算法进行计算,我们使用把每条路经常遍历的算法计算,也就是DFS深度优先遍历的思想。
我们在脑海里构成一个表,把这张图放进表里,根据有5行5列,比如(1,1)=0代表从1号城市到1号城市的距离是0,对于2号城市到4号城市没有路径的情况我们用9999999(这里认为9999999是无限大)填充。即(2,4)=9999999。
知道了这些,我们就可以开始求最短路径了,我们规定一个规则,当遇到路口时先往标号小的城市那边走,比如我们从1号城市出发,可以到达2号与5号城市,根据规则,转向2号城市。以此类推,第一次遍历的路径是1-2-3-4-5,但谁说这就是最短的了?所以我们在退回4号城市尝试其它路径。
就这样我们在设置一个变量对最短路不断更新即可,是不是很简单,下面是代码。
【代码】
#include<iostream>
#include<cstdio>
using namespace std;
int minn=9999999,book[101],n,e[101][101];
void dfs(int cur,int dis)
{
int j;
if(dis>minn) return ;
if(cur==n)
{
if(dis<minn) minn=dis;
return ;
}
for(j=1;j<=n;j++)
{
if(e[cur][j]!=9999999 && book[j]==0)
{
book[j]=1;
dfs(j,dis+e[cur][j]);
book[j]=0;
}
}
return;
}
int main()
{
int i,j,m,a,b,c;
cin>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i==j) e[i][j]=0;
else e[i][j]=9999999;
}
}
for(i=1;i<=m;i++)
{
cin>>a>>b>>c;
e[a][b]=c;
}
book[1]=1;
dfs(1,0);
cout<<minn;
//system("pause");
return 0;
}
首师大附中互测题:50136142WXY的坑爹百度地图【B006】(可以喝的超大桶水)的更多相关文章
- 首师大附中互测题:99999999海岛帝国后传:算法大会【D001】
[D001]99999999海岛帝国后传:算法大会[难度:D] ———————————————————————————————————————————————————————————————————— ...
- 首师大附中互测题:LJX的校园:入学典礼【C003】
[C003]LJX的校园:入学典礼[难度C]—————————————————————————————————————————————————————————————————————————————— ...
- 首师大附中互测题:50229234海岛帝国:独立之战【C002】
[C002]50229234海岛帝国:独立之战[难度C]———————————————————————————————————————————————————————————————————————— ...
- 50136142WXY的百度地图
50136142WXY的百度地图 [试题描述] 社团里的WXY童鞋今天要出去旅游啦(他现在在北京为1号城市),决定去朝鲜平壤(N号城市).但是很穷的WXY没有钱坐飞机,只好坐汽车去朝鲜了.但是车上的百 ...
- 【2018集训队互测】【XSY3372】取石子
题目来源:2018集训队互测 Round17 T2 题意: 题解: 显然我是不可能想出来的……但是觉得这题题解太神了就来搬(chao)一下……Orzpyz! 显然不会无解…… 为了方便计算石子个数,在 ...
- 洛谷 P4463 - [集训队互测 2012] calc(多项式)
题面传送门 & 加强版题面传送门 竟然能独立做出 jxd 互测的题(及其加强版),震撼震撼(((故写题解以祭之 首先由于 \(a_1,a_2,\cdots,a_n\) 互不相同,故可以考虑求出 ...
- 【loj2461】【2018集训队互测Day 1】完美的队列
#2461. 「2018 集训队互测 Day 1」完美的队列 传送门: https://loj.ac/problem/2461 题解: 直接做可能一次操作加入队列同时会弹出很多数字,无法维护:一个操作 ...
- 【CH 弱省互测 Round #1 】OVOO(可持久化可并堆)
Description 给定一颗 \(n\) 个点的树,带边权. 你可以选出一个包含 \(1\) 顶点的连通块,连通块的权值为连接块内这些点的边权和. 求一种选法,使得这个选法的权值是所有选法中第 \ ...
- 【百度地图API】——国内首款团购网站的地图插件
原文:[百度地图API]--国内首款团购网站的地图插件 摘要: 本文介绍了一款应用在团购网站上的地图插件,适用于目前非常流行的团购网站.使用这款地图插件,无需任何编程技术,你就把商家的位置轻松地标注在 ...
随机推荐
- Java程序员
从生存.制胜.发展三个方面入手,为大家展示出程序员求职与工作的一幅3D全景图像.本书中既有在公司中的生存技巧,又有高手达人的进阶策略,既有求职攻略的按图索骥,又有入职后生产环境的破解揭秘. 书中浓缩了 ...
- jquery实现简单瀑布流布局(续):图片懒加载
# jquery实现简单瀑布流布局(续):图片懒加载 这篇文章是jquery实现简单瀑布流布局思想的小小扩展.代码基于前作的代码继续完善. 图片懒加载就是符合某些条件时才触发图片的加载.最常见的具体表 ...
- Transmission : 如何在Fedora下使用BT下载
先讲讲BT协议的名词: Glossary of BitTorrent terms Transmission 介绍 BT下载客户端 特点: 支持BT下载(.torrent 种子) 或者 磁链( magn ...
- CocoaPods 升级
也不知道是什么时候,ruby.taobao开始不能用了,在公司的电脑上一直装不上,还卡在那里, 旁边的老大投来了异样的目光,或者我是应该提升下技术了-- 一.升级gem gem update --sy ...
- Docker数据持久化与容器迁移
上节讲到当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据.如果想做到数据持久化,Docker提供数据卷(Data volume)或 ...
- commons-fileupload.jar实现文件上传
标签: uploadfileimportexceptionstringmyeclipse 2012-09-06 19:55 1497人阅读 评论(0) 收藏 举报 分类: 好东东(2) Jav ...
- Python SMTP邮件模块
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件, ...
- 在Application中集成Microsoft Translator服务之优化
在一篇文章中我们已经实现了功能,但是一个明显的问题是响应时间非常长,用户体验非常糟糕,这篇文章将带你找出问题所在并进行优化 为了找出追魁祸首,这里使用 System.Diagnostics.Stopw ...
- 一个很全的VTK实例网址
https://cmake.org/Wiki/VTK/Examples/Cxx#Visualization
- VTK初学一,vtkDelaunay2D创建球冠曲面
#ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend ...