洛谷p2330繁忙的都市题解
根据题意来分析, 要求出你选了几条路, 最小生成树是能解的, 那么就直接输出n - 1条路即可, 至于最大值则走一遍最小生成树求出即可
这里提供最小生成树的两种方法
1. 克鲁斯卡尔
克鲁斯卡尔算法还是比较好理解的思路也简单, 就是排序然后按顺序来遍历, 找一个就把他放到并查集中。
#include <iostream>
#include <cstdio>
#include <algorithm>
#define MAXN 50005
using namespace std;
int n, m, tot, fa[MAXN];
struct node {
int x, y, z;
}kls[MAXN];
bool cmp (node x, node y) {
return x.z < y.z;
}
int find (int x) {
if (fa[x] == x) return x;
else return fa[x] = find (fa[x]);
}
int main () {
scanf ("%d%d", &n, &m);
for (int i = ; i <= MAXN; i++)
fa[i] = i;
for (int i = ; i <= m; i++)
scanf ("%d%d%d", &kls[i].x, &kls[i].y, &kls[i].z);
sort (kls + , kls + m + , cmp);
int ans;
for (int i = ; i <= m; i++) {
int xx = find (kls[i].x), yy = find (kls[i].y);
if (xx != yy) {
fa[xx] = yy;
tot++;
ans = kls[i].z;
if (tot == n - ) break;
}
}
printf ("%d %d\n", tot, ans);
return ;
}
2.prim算法
有点类似于迪杰斯特拉。
#include <iostream>
#include <cstdio>
#include <cstring>
#define MAXN 5005
using namespace std;
int n, m, dis[MAXN], map[MAXN][MAXN];
bool vis[MAXN];
void prim () {
dis[] = ;
for (int i = ; i <= n; i++) {
int k = ;
for (int j = ; j <= n; j++)
if (!vis[j] && dis[j] < dis[k])
k = j;
vis[k] = ;
for (int j = ; j <= n; j++)
if (!vis[j] && dis[j] > map[k][j])
dis[j] = map[k][j];
}
}
int main () {
memset (map, 0x7f7f7f, sizeof (map));
memset (dis, 0x7f7f7f, sizeof (dis));
scanf ("%d%d", &n, &m);
for (int i = ; i <= m; i++) {
int x, y, z;
scanf ("%d%d%d", &x, &y, &z);
if (map[x][y] > z)
map[x][y] = map[y][x] = z;
}
prim();
int big = ;
for (int i = ; i <= n; i++)
if (dis[i] > big)
big = dis[i];
printf ("%d %d\n",n - , big);
return ;
}
洛谷p2330繁忙的都市题解的更多相关文章
- 洛谷P1783 海滩防御 分析+题解代码
洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和 ...
- 洛谷P4047 [JSOI2010]部落划分题解
洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...
- Luogu P2330 繁忙的都市
Luogu P2330 繁忙的都市 裸的最小生成树. 当然,一定要注意它让你输出什么. #include<bits/stdc++.h> #define N 100010 using nam ...
- 洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈)
洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1311990 原题地址:洛谷P1155 双栈排序 ...
- 洛谷—— P2330 [SCOI2005]繁忙的都市
P2330 [SCOI2005]繁忙的都市 题目描述 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路 ...
- 洛谷10月月赛II题解
[咻咻咻] (https://www.luogu.org/contestnew/show/11616) 令人窒息的洛谷月赛,即将参加NOIp的我竟然只会一道题(也可以说一道也不会),最终145的我只能 ...
- [洛谷P1823]音乐会的等待 题解(单调栈)
[洛谷P1823]音乐会的等待 Description N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人A和B,如果他们是相邻或他们之间没 ...
- BZOJ2527 & 洛谷3527:[Poi2011]Meteors——题解
+++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233. + +欢迎访问我的博客:http://www.cnblogs.com/luy ...
- 洛谷 p1516 青蛙的约会 题解
dalao们真是太强了,吊打我无名蒟蒻 我连题解都看不懂,在此篇题解中,我尽量用语言描述,不用公式推导(dalao喜欢看公式的话绕道,这篇题解留给像我一样弱的) 进入正题 如果不会扩展欧里几德的话请先 ...
随机推荐
- Linux 脚本在线安装docker
2019/11/28, CentOS 8, docker 19.03.5, docker-compose 1.25.0 摘要:CentOS8使用脚本安装docker,dnf安装rpm,安装docker ...
- Winform串口编程---接收数据demo(VSPD虚拟串口)
参考地址:https://blog.csdn.net/memgxingfeixiang/article/details/52513970 https://blog.csdn.net/kevin_io ...
- Configuration property name 'xxx' is not valid
目录 问题 解决 问题 程序出错:Configuration property name ‘xxx’ is not valid, Canonical names should be kebab-cas ...
- [其它]iOS 13 正式版发布 iPhone 6s或更新型号均可升级
苹果今天(2019.09.20)发布了 iOS 13 正式版,可以升级的设备包括 iPhone 6s 或更新型号.第七代 iPod Touch. iOS 13 推出深色模式,为 iPhone 带来截然 ...
- Linux下搭建keepalive+nginx
一. 安装nginx(略) 二. 安装keepalive 下载http://www.keepalived.org/download.html 安装依赖包 yum install –y popt* gc ...
- Crontab常用命令总结
一.启动服务 /sbin/service crond start 二.关闭服务 /sbin/service crond stop 三.重启服务 /sbin/service crond restart ...
- vue项目使用html5+ barcode扫码在苹果遇到的问题以及自己的解决方法
之前在记录扫码 在安卓时,会出现黑屏,错位,闪退等等问题.解决方法在另一篇文章里 https://www.cnblogs.com/huzhuhua/p/11064764.html . 当时以为 是 ...
- S5PV210 固件烧写 u-boot烧写
首先阅读CW210_CD自带光盘中CW210 开发板使用手册.pdf 使用usb 拨码开关置成usb启动.xx可以是ON或OFF.开发板上面也有丝印提示 usb线接好,串口线接好 使用DNW下载 自带 ...
- java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libjni_i
出错log:java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libskytvjni.so" ...
- 搭建前端监控系统(五)Nodejs怎么搭建消息队列
怎样定位前端线上问题,一直以来,都是很头疼的问题,因为它发生于用户的一系列操作之后.错误的原因可能源于机型,网络环境,接口请求,复杂的操作行为等等,在我们想要去解决的时候很难复现出来,自然也就无法解决 ...