7-10 网红点打卡攻略 (25 分)——天梯赛综合练习-3
一个旅游景点,如果被带火了的话,就被称为“网红点”。大家来网红点游玩,俗称“打卡”。在各个网红点打卡的快(省)乐(钱)方法称为“攻略”。你的任务就是从一大堆攻略中,找出那个能在每个网红点打卡仅一次、并且路上花费最少的攻略。
输入格式:
首先第一行给出两个正整数:网红点的个数 N(1<N≤200)和网红点之间通路的条数 M。随后 M 行,每行给出有通路的两个网红点、以及这条路上的旅行花费(为正整数),格式为“网红点1 网红点2 费用”,其中网红点从 1 到 N 编号;同时也给出你家到某些网红点的花费,格式相同,其中你家的编号固定为 0
。
再下一行给出一个正整数 K,是待检验的攻略的数量。随后 K 行,每行给出一条待检攻略,格式为:
n V1 V2 ⋯ Vn
其中 n(≤200) 是攻略中的网红点数,Vi 是路径上的网红点编号。这里假设你从家里出发,从 V1 开始打卡,最后从 Vn 回家。
输出格式:
在第一行输出满足要求的攻略的个数。
在第二行中,首先输出那个能在每个网红点打卡仅一次、并且路上花费最少的攻略的序号(从 1 开始),然后输出这个攻略的总路费,其间以一个空格分隔。如果这样的攻略不唯一,则输出序号最小的那个。
题目保证至少存在一个有效攻略,并且总路费不超过 109。
输入样例:
6 13
0 5 2
6 2 2
6 0 1
3 4 2
1 5 2
2 5 1
3 1 1
4 1 2
1 6 1
6 3 2
1 2 1
4 5 3
2 0 2
7
6 5 1 4 3 6 2
6 5 2 1 6 3 4
8 6 2 1 6 3 4 5 2
3 2 1 5
6 6 1 3 4 5 2
7 6 2 1 3 4 5 2
6 5 2 1 4 3 6
输出样例:
3
5 11
样例说明:
第 2、3、4、6 条都不满足攻略的基本要求,即不能做到从家里出发,在每个网红点打卡仅一次,且能回到家里。所以满足条件的攻略有 3 条。
第 1 条攻略的总路费是:(0->5) 2 + (5->1) 2 + (1->4) 2 + (4->3) 2 + (3->6) 2 + (6->2) 2 + (2->0) 2 = 14;
第 5 条攻略的总路费同理可算得:1 + 1 + 1 + 2 + 3 + 1 + 2 = 11,是一条更省钱的攻略;
第 7 条攻略的总路费同理可算得:2 + 1 + 1 + 2 + 2 + 2 + 1 = 11,与第 5 条花费相同,但序号较大,所以不输出。
这里力荐柳婼的题解,详情请点击链接查看。科普一个小知识c++的fill()函数。
#include <bits/stdc++.h>
using namespace std;
int N, M, K, u, v, w, n, flag, cost, Ansnum, Ansid, Anscost = INT_MAX, Edge[201][201], Path[202], Has[201];
int main() {cin >> N >> M;for (int i = 0; i < M; i++) {cin >> u >> v >> w;Edge[u][v] = Edge[v][u] = w;}cin >> K;for (int i = 1; i <= K; i++) {fill(Has, Has + N + 1, 0);Path[N + 1] = flag = cost = 0;cin >> n;for (int j = 1; j <= n; j++){cin >> Path[j];if(Has[Path[j]]) Has[0] = 1;Has[Path[j]] = 1;}if (Has[0] || n != N) continue;for (int j = 1; j <= n + 1; j++) {if (Edge[Path[j-1]][Path[j]] == 0) {flag = 1;break;}cost += Edge[Path[j - 1]][Path[j]];}if (!flag) {Ansnum++;if(cost < Anscost) Ansid = i, Anscost = cost;}}cout << Ansnum << '\n' << Ansid << ' ' << Anscost;return 0;
}
7-10 网红点打卡攻略 (25 分)——天梯赛综合练习-3相关推荐
- 重返天梯-L2-036 网红点打卡攻略 (25 分)
重返天梯-L2-036 网红点打卡攻略 (25 分) C++ 有点小坑,所以记录一下 #include <bits/stdc++.h> using namespace std; const ...
- L2-036 网红点打卡攻略 (25 分)(哈密顿回路)
题目链接: 题目详情 - L2-036 网红点打卡攻略 (25 分) (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/prob ...
- L2-036 网红点打卡攻略 (25 分)-PAT 团体程序设计天梯赛 GPLT
一个旅游景点,如果被带火了的话,就被称为"网红点".大家来网红点游玩,俗称"打卡".在各个网红点打卡的快(省)乐(钱)方法称为"攻略".你的 ...
- 7-2 网红点打卡攻略 (25 分)java版
一个旅游景点,如果被带火了的话,就被称为"网红点".大家来网红点游玩,俗称"打卡".在各个网红点打卡的快(省)乐(钱)方法称为"攻略".你的 ...
- L2-036 网红点打卡攻略 (25 分)
一个旅游景点,如果被带火了的话,就被称为"网红点".大家来网红点游玩,俗称"打卡".在各个网红点打卡的快(省)乐(钱)方法称为"攻略".你的 ...
- L2-4 网红点打卡攻略 (25 分)
一个旅游景点,如果被带火了的话,就被称为"网红点".大家来网红点游玩,俗称"打卡".在各个网红点打卡的快(省)乐(钱)方法称为"攻略".你的 ...
- 1、网红点打卡攻略 (25 分)
一个旅游景点,如果被带火了的话,就被称为"网红点".大家来网红点游玩,俗称"打卡".在各个网红点打卡的快(省)乐(钱)方法称为"攻略".你的 ...
- L2-036 网红点打卡攻略 (25 分)(图论)
一个旅游景点,如果被带火了的话,就被称为"网红点".大家来网红点游玩,俗称"打卡".在各个网红点打卡的快(省)乐(钱)方法称为"攻略".你的 ...
- 【数据结构与算法暑期实习】PTA 网红点打卡攻略
PTA 网红点打卡攻略 一.题目 二.思路 三.代码 一.题目 一个旅游景点,如果被带火了的话,就被称为"网红点".大家来网红点游玩,俗称"打卡".在各个网红点 ...
最新文章
- 湖大和厦大计算机专硕6,【图片】一战厦大计算机上岸,经验帖。慢更【考研吧】_百度贴吧...
- Machine Learning week 5 quiz: programming assignment-Multi-Neural Network Learning
- 小白科普:虚拟化简史
- 聚集索引和非聚集索引
- python软件是哪个国家的品牌_有哪些好用的软件被国人误认为是外国研发的?
- [PyTorch] 保存模型和恢复模型
- flex布局怎么设置子元素大小_Web前端(三):前端布局
- js本地存储解决方案(localStorage与userData)
- 重复的事情让机器来做,简化的思想
- 老板口中的一区二区是什么意思?
- PCS7服务器数据包安装位置,PCS7中应用PH服务器的配置问题
- 2019面试宝典之.Net
- 浏览器无法访问百度的问题
- 《Photoshop修饰与合成专业技法》—第1章伪造的抠像:第一部分
- 【Linux-GNU编译器套件(gcc/g++/gfortran)离线编译安装】
- Apache DolphinScheduler征稿 — 小Demo轻松入门DolphinSchedule大数据调度工具
- python中的抽象类
- 2021练习题Python的
- 大华摄像头使用外网进行访问管理
- python多进程多线程,多个程序同时运行
热门文章
- c语言结构体数组内存大小,如何为C语言的结构体数组分配/释放内存?
- Reflect介绍,及常用的方法
- 机械革命s1pro 拆机教程
- damn small linux试玩
- Ultimate Retouch Panel for Mac(PS磨皮插件)
- STM32F4_通过RS232实现和PC端通讯
- 苹果手机上网很慢_豁然开朗!原来手机网络信号不好是这么回事!
- java 元数据 注解_Java:注解(元数据)
- Spring基于注解TestContext 测试框架使用详解
- mvc ajax 删除数据,.Net MVC4 使用心得(四)分页、Partial View、删除、ajax返回