PAT 7-14 公路村村通
https://pintia.cn/problem-sets/1111189748004499456/problems/1111189831248850957
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。
输入格式:
输入数据包括城镇数目正整数N(≤)和候选道路数目M(≤);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。
输出格式:
输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−,表示需要建设更多公路。
输入样例:
6 15
1 2 5
1 3 3
1 4 7
1 5 4
1 6 2
2 3 4
2 4 6
2 5 2
2 6 6
3 4 6
3 5 1
3 6 1
4 5 10
4 6 8
5 6 3
输出样例:
12
代码:
#include <bits/stdc++.h>
using namespace std;const int inf = 0x3f3f3f3f;
int N, M;
int mp[3010][3010];
int vis[3010];
vector<int> v[3010];
int dis[3010];void dfs(int st) {if(v[st].size() == 0) return;for(int i = 0; i < v[st].size(); i ++) {if(!vis[v[st][i]]) {vis[v[st][i]] = 1;dfs(v[st][i]);}}
}void prime() {memset(dis, inf, sizeof(dis));memset(vis, 0, sizeof(vis));for(int i = 1; i <= N; i ++)dis[i] = mp[1][i];dis[1] = 0;long long res = 0;int temp;for(int i = 1; i <= N; i ++) {int minn = inf;for(int j = 1; j <= N; j ++) {if(!vis[j] && dis[j] < minn) {minn = dis[j];temp = j;}}vis[temp] = 1;for(int k = 1; k <= N; k ++) {if(!vis[k]) {dis[k] = min(dis[k], mp[temp][k]);}}}for(int i = 1; i <= N; i ++)res += dis[i];printf("%lld\n", res);
}int main() {memset(mp, inf, sizeof(mp));scanf("%d%d", &N, &M);for(int i = 0; i < M; i ++) {int st, en, cos;scanf("%d%d%d", &st, &en, &cos);v[st].push_back(en);v[en].push_back(st);mp[st][en] = mp[en][st] = cos;}memset(vis, 0, sizeof(vis));int cnt = 0;for(int i = 1; i <= N; i ++) {if(vis[i]) continue;cnt ++;dfs(i);}if(cnt > 1) printf("-1\n");else prime();return 0;
}
dfs + prim mp 忘记初始化 wa 了四发 自己的 bug 自己改!
今天蓝桥出成绩 虽然是意料之内的省二但是还是有点失望 唉 周末的天梯拜托了啊 一定要加油啊!!!
转载于:https://www.cnblogs.com/zlrrrr/p/10618193.html
PAT 7-14 公路村村通相关推荐
- 08-图7 公路村村通
08-图7 公路村村通(30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤ ...
- 7-5 公路村村通 (30 分)(C语言实现)
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N) ...
- 7-10 公路村村通 (最小生成树Prim算法) | PTA数据结构与算法——C语言实现
公路村村通 非常直白的最小生成树问题. 原题链接:PTA | 程序设计类实验辅助教学平台 题目描述 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通 ...
- 08-图7 公路村村通(浙大数据结构)
中国大学MOOC-陈越.何钦铭-数据结构-2022夏 08-图7 公路村村通 分数 30 作者 陈越 单位 浙江大学 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每 ...
- 7-10 公路村村通 (30 分)(C语言)
7-10 公路村村通 (30 分) (写在前面:Kruskal算法不够完善,跪求大佬指点怎么修改,拜托拜托
- PTA 公路村村通 思路分析及代码解析
PTA 公路村村通 一.前导 1. 需要掌握的知识 2. 题目信息 二.解题思路分析 1. 题意理解 1. 1 输入数据 1.2 输出数据 2. 思路分析(重点) 三.具体实现 1. 弯路和bug 2 ...
- PTA 公路村村通
7-10 公路村村通 (30分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤1 ...
- 06-图6. 公路村村通(30)
06-图6. 公路村村通(30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的 ...
- 浙大数据结构:08-图7 公路村村通 (30 分)Prim与Kruskal算法
08-图7 公路村村通 (30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N( ...
- PTA_21_08_图7 _公路村村通
PTA_21_08_图7 _公路村村通 题目描述 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式 输入数据包括城镇数目 ...
最新文章
- [LeetCode] Maximum Subarray 最大子数组
- 16年寒假随笔(4)
- Tensorflow学习教程集合
- Android 自动化测试——Monkey测试
- Linux 启动顺序
- python 删除指定时间之前文件的脚本 包括下级目录
- Hibernate关联关系映射-----基于连接表的单向一对多映射配置
- windows 10 l2tp 连接无响应问题解决
- 计算机二级Java考试心得
- C# 反编译修改dll文件
- 【精品收藏】世界上最有智慧的人是怎样理性思考的?查理·芒格的100个思维模型...
- Linux操作系统搭建本地源
- 软件著作权申请流程(2021版)
- pb语言是什么计算机语言,Pb编程语言深入讲解,了解pb语言的if判断语句!
- Cisco wlan controlller配置
- 8.单链表实现与反转
- 玩客云手动设置IP地址
- 国夜景最美丽的十大城市
- 小伙子开超市,抓住“人性贪婪”,二个步骤过后,生意瞬间火爆!
- OpenXR+Runtime:OpenXR SDK与Runtime的衔接