NYOJ 925 国王的烦恼
国王的烦恼
- 描述
-
C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到达,他们就会安然无事。但是,如果前一天两个小岛之间还有方法可以到达,后一天却不能到达了,居民们就会一起发起抗议。
现在C国的国王已经知道了每座桥能使用的天数,超过这个天数就不能使用了。现在他想知道居民们一共会发起多少次抗议。
- 输入
-
多组测试数据。
每组数据先输入两个正整数n和m。
接下来m行,每行三个整数a, b, t,分别表示该座桥连接a号和b号两个小岛,能使用t天。小岛的编号从1开始递增。(1≤n≤10000,1≤m≤100000,1<=a,b<=n,1≤t≤100000) - 输出
- 输出一个整数,表示居民们发起抗议的次数。
- 样例输入
-
4 4 1 2 2 1 3 2 2 3 1 3 4 3
- 样例输出
-
2
- 提示
-
对于样例:
第一天后2和3之间的桥不能使用,不影响。
第二天后1和2之间,以及1和3之间的桥不能使用,居民们会抗议。
第三天后3和4之间的桥不能使用,居民们会抗议。 - 来源
- 蓝桥杯
-
上传者
TC_李远航分析:
最小生成树变形,逆向思维,转换成建桥问题。
-
将能使用天数从大到小排序,并查集处理。代码:
#include <cstdio> #include <iostream> #include <algorithm> using namespace std;const int maxn = 10000 + 5, maxm = 100000 + 5; int f[maxn], lastday; struct node {int x, y, v;bool operator < (const node& a) const { //按天数排序return v > a.v;} } N[maxm];int Find(int x) //找 x 所在的树根 {return f[x] == x ? x : f[x] = Find(f[x]); }bool Union(int x, int y) {int tx = Find(x), ty = Find(y);if(tx == ty) //它俩在同一个连通分量return false;f[tx] = ty; //合并两个连通分量return true; } int main() {int n, m;while(~scanf("%d%d", &n, &m)) {for(int i = 0; i < m; i++) scanf("%d%d%d", &N[i].x, &N[i].y, &N[i].v);sort(N, N + m);for(int i = 0; i <= n; i++) f[i] = i; //初始化并查集int cnt = 0;lastday = -1;for(int i = 0; i < m; i++) {if(Union(N[i].x, N[i].y) && N[i].v != lastday) { //两个小岛不连通,且与上一个大桥的天数不同cnt++;lastday = N[i].v;}}printf("%d\n", cnt);}return 0; }
NYOJ 925 国王的烦恼相关推荐
- nyoj 925 国王的烦恼(最小生成树)
/* 题意:N个城市中每两个城市有多条路径连接,可是因为路径存在的天数是有限的!以为某条路经不存在了 导致N个城市不能连通了,那么村名们就会抗议!问一共会有多少次抗议! 思路:最小生成树....我们用 ...
- 蓝桥杯历届试题 国王的烦恼(并查集逆序加边+坑)
历届试题 国王的烦恼 时间限制:1.0s 内存限制:256.0MB 问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛.两个小岛间可能存在多座 ...
- [蓝桥杯][历届试题]国王的烦恼(反向+并查集)
问题 1435: [蓝桥杯][历届试题]国王的烦恼 时间限制: 1Sec 内存限制: 128MB 提交: 802 解决: 213 题目描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了 ...
- 【蓝桥杯】 历届试题 国王的烦恼(并查集)
历届试题 国王的烦恼 问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛.两个小岛间可能存在多座桥连接.然而,由于海水冲刷,有一些大桥面临着不能使用的 ...
- 蓝桥杯国王的烦恼java,国王的烦恼 蓝桥杯
国王的烦恼 蓝桥杯 题意 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛.两个小岛间可能存在多座桥连接.然而,由于海水冲刷,有一些大桥面临着不能使用的危险. ...
- 蓝桥 历届试题 国王的烦恼
历届试题 国王的烦恼 时间限制:1.0s 内存限制:256.0MB 问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛.两个小岛间可能存在多座桥连 ...
- NYOJ 264 国王的魔镜
国王的魔镜 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍--只是,因为是镜子嘛,增加的那部分是反的. 比如一条项 ...
- NYOJ 682 初学者的烦恼
初学者的烦恼 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 小c才开始学习c语言,让他最烦恼的就是对字符数组的操作.小C的好朋友小E为了激励他,出了这样一个题目:字符串 ...
- NYOJ 小珂的烦恼
小珂的烦恼 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 小珂遇到了一个麻烦的问题,有这样的N对数(1,2),(3,5),(4,7),(6,10)--,第i对的差值为i ...
最新文章
- 周长相等的正方形面积一定相等_必考单元:三年级下册面积计算公式+知识点+测试卷(附答案),重点内容,收藏练习!...
- 【Android 应用开发】Paint 图形组合 Xfermod 之 合成模式表示方法 ( Xfermod 使用步骤 | 透明度 颜色值 公式表示方法 | 老版本表示方法 | 合成区域分块 )
- C# using的用法
- vbs用mysql语句查询数据库_vbs脚本实现window环境下的mysql数据库的备份及删除早期备份...
- 转 : 深入解析Java锁机制
- Android 6.0 动态权限申请
- python如何读取csv文件某几行某几列_关于python:读取.csv文件时,我似乎无法指定列dtypes...
- mybatis3.1-[topic-16-17]-映射文件_增删改查_insert_获取自增主键的值
- CAD图纸上面缺失的线条如何将其进行补充?
- 51nod-1065:最小正子段和
- SSH (Struts2+Spring3.0+Hibernate3)框架(二) 框架的配置
- timeroc 最优最佳截断值特异度(specificity)与灵敏度(sensitivity)
- JS一些常用证件信息的正则表达式
- SpringBoot中怎么访问静态图片
- html用360打不开,win7系统使用360安全卫士解决浏览器打不开的方法
- outlook邮件通过python发送_怎么发送邮箱-python调用outlook发送邮件的超详细操作步骤...
- 电子元器件篇---三极管
- 扫地机器人相关传感器技术
- TLF 0day SERVER 列表
- dns劫持与http劫持
热门文章
- python爬取京东网页商品实例(一)
- access随系统启动的宏_Access 中启动带宏的excel
- 小马哥----4G定制版i6(仿苹果6 6571芯片) 拆机外观与与开机界面图
- #力扣 LeetCode35. 搜索插入位置 #在所有 Java 提交中击败了 100.00% 的用户 @FDDLC
- 自助广告插件系统 7.4版本 高颜值网站广告代码
- Android代码设置APN
- 山东科技大学计算机科学与技术学硕,2021年山东科技大学计算机科学与技术(081200)硕士研究生招生信息_考研招生计划和招生人数 - 学途吧...
- 分支语句和循环语句[一]【详解】
- 只有mdf文件和ldf文件--怎么恢复数据库
- TensorFlow安装和下载详细教程-内附多种解决方案