入门OJ P:1702 爆炸化合物题解
Deity_armed. 16:45:52
博客:
第四次发博客了…
原题网址:https://begin.lydsy.com/JudgeOnline/problem.php?cid=1318&pid=15
密码:wwwwww
题目描述如下:
Time Limit: 1 Sec Memory Limit: 128 MB
Description
各国都在加大力度防范恐怖份子对于飞机的袭击,X国也不例外,液体一律不准带上飞机。
但是,X国最近打探到某恐怖分子集团正在密谋策划一项恐怖袭击,恐怖分子们准备使用固体材料来制造炸弹!
幸运的是,X国已经知道了恐怖分子们将使用某些特定的化合物来制造炸弹。每种化合物是由2种不同的不明元素构成的。
如果将k个化合物放在一起,而这k个化合物恰好含有k种元素,那么这些化合物就构成了一个炸弹。
例如:现在有6个化合物A+B, G+B, D+F, A+E, E+G, F+H,其中A+B, G+B, A+E, E+G这4种化合物中恰好含有4种元素
因此这4种化合物如果在一起,那么就会构成炸弹。
现在,机场的安俭部分已经收到了若干个即将被带上飞机的化合物,这些化合物将依次上飞机,对于每个化合物
你需要判断该化合物能否上飞机。(即判断他与之前已经上飞机的化合物是否会构成炸弹)。对于上面的例子,第5个化合物将不能被带上飞机。
Input
给出若干行,每行两个整数a和b,表示该化合物的两种元素。输入的最后,用一个-1表示输入文件结束。
对于所有的数据,元素的标号是一个[0,10^5]的整数。最多有 10^5个化合物
Output
一行,表示有多少个化合物不能上飞机。
Sample Input
1 2
3 4
3 5
3 1
2 3
4 1
2 6
6 5
-1
Sample Output
3
(由题面可知)本题暗藏样例:
Sample Input
1 2
7 2
4 6
1 5
5 7
6 8
-1
Sample Output
1
刚看到这题本蒟蒻想的是最普通(即输入为极简单的)的算法,写完后题目自身附带的两个样例AC了,然后本蒟蒻就作死般的提交了,不要想,自然是WA了,后来重新想了下题目,用并查集试了一遍,果然不出所料,AC了
思路:
用并查集边读边找,由于每个化合物仅有两个元素,每合并一次,增加一个化合物,但也增加了一个元素,可以抵消,故如果化合物中元素都属于一个集合,那么说明此时的化合物数量与元素数量相同,,说明可以制造炸弹,ans++,若不能,则继续搜索,直到循环结束…
代码如下:
#include <cstdio>
#include <iostream>
using namespace std;const int NUM=100001;int a,b,ans;
int v[NUM];int find(int u) //递归找到根节点
{if(u==v[u]) return u;return v[u]=find(v[u]); //用v数组存起来,使树扁平化(路径压缩),减少时间复杂度,避免超时
}void merge(int x,int y) //合并
{if(find(x)!=find(y))v[find(y)]=find(x);
}int main()
{for(int i=1;i<=NUM;i++)v[i]=i;while(true){scanf("%d",&a);if(a==-1){printf("%d",ans);return 0;} scanf("%d",&b);if(find(a)==find(b)) ans++; else merge(a,b);}
}
不足之处欢迎指出。
鸣谢!!!
入门OJ P:1702 爆炸化合物题解相关推荐
- 2019.6.7 一场搜索专题的考试【including 洛谷·血色先锋队,入门OJ·兴建高铁,珠光宝气阁
这次分数还好.但全是搜索题还没上200就有点打击人了--[本狸才177QAQ 血色先锋队/血色敢死队 传送门:洛谷P1332 & 入门OJ P2259 Description 邪魔天国领主复活 ...
- 1092: 【入门】时间的差! 题解
1092: [入门]时间的差! 题解 网站 题目描述 输入 输出 样例输入 样例输出 想法 程序 结尾 网站 http://oj.jzxx.net/problem.php?id=1092 题目描述 看 ...
- c语言3%10等于多少,[编程入门]数字的处理与判断-题解(C语言代码)
# 1009题-[编程入门]数字的处理与判断-题解(C语言描述) 本题解的最终解释权归本人所有,主要用于本班上同学更好的掌握本题的解题方法,同时更好的理解和掌握方法. ------------ ### ...
- Comet OJ 2019 夏季欢乐赛题解
Comet OJ 2019 夏季欢乐赛题解 我是来骗访问量的 A 完全k叉树 \(n\)个点的完全k叉树的直径. 直接做 B 距离产生美 直接做 C 烤面包片 \(n!!!\mod p\) 显然\(n ...
- noip2017爆炸记——题解总结反省(普及组+提高组)
相关链接: noip2018总结 noip2017是我见过的有史以来最坑爹的一场考试了. 今年北京市考点有一个是我们学校,我还恰好被分到了自己学校(还是自己天天上课的那个教室),于是我同时报了普及提高 ...
- c++ substr截取中间部分字符串_杭电OJ 字符串处理类部分题解
一.前言 不知不觉已经大三上学期了,可作为一个计算机狗还没有考过CCF-CSP.因平时学习内容主要与安全方面相关,对于此类算法类的考核并没有太多的准备,故打算开始刷题复习算法和数据结构,准备CCF认证 ...
- c++怎么输入带有空格的字符串_杭电OJ 字符串处理类部分题解
一.前言 不知不觉已经大三上学期了,可作为一个计算机狗还没有考过CCF-CSP.因平时学习内容主要与安全方面相关,对于此类算法类的考核并没有太多的准备,故打算开始刷题复习算法和数据结构,准备CCF认证 ...
- 【OJ】洛谷红题题解锦集(Java语言描述)
前言 能看这篇文章,想来你可能是小白(或者切题的大佬),那这里会把洛谷的红题(当前只有P字段的本谷题目)进行一下整理,希望会合你口味吧-- 本文只附个人题解链接,不附题目链接(题解中自带),如想刷题请 ...
- 【bzoj 入门OJ】[NOIP 热身赛]Problem C: 星球联盟(并查集)
Problem C: 星球联盟 Time Limit: 4 Sec Memory Limit: 256 MB Submit: 57 Solved: 15 [Submit][Status][Web ...
- [Usaco2010 Hol]cowpol 奶牛政坛(入门oj Problem 5274)
第三次发题解哈.有什么表述错误的请见谅(可以提出). 题目源地址:https://www.lydsy.com/JudgeOnline/problem.php?id=1776 文章目录 题目描述 输入 ...
最新文章
- 特斯拉“纯视觉路线”能去掉ISP吗?
- 深度丨AI 与区块链:两大热门技术,会碰撞出什么样的火花?
- 算法偏见是什么_算法可能会使任何人(包括您)有偏见
- python将excel导入mysql_Python将Excel数据自动导入MySQL,python,实现,excel,到,中
- java中簇如何表示_聚簇索引和非聚簇索引实际上是什么意思?
- UML---(1)一张图看懂UML 类图
- java.sql.SQLException: ORA01555: 快照过旧: 回退段号 4 过小
- 计算机辅助管理与制造,计算机辅助设计与制造,对产品的设备进行管理,完成产品加工制造...
- 第一讲 地理信息系统概述
- 【数据结构】有限状态自动机(FSA)的理解-LeetCode表示数值的字符串(有效数字)题解(Java)
- 分布式 - 谈谈你对分布式的理解,为什么引入分布式?
- 梅科尔工作室-梁嘉莹-鸿蒙笔记4
- 我的编程之路(三) 蜗居
- SMTP;ESMTP
- MySQL自定义函数实例
- CDMA2000简介
- 银联扫码支付及静态码回调验签
- IBM实习日记——6.16-6.18
- Struts 2漏洞及其影响版本(记录备查)
- Linux 双显卡 黑屏,维护必读 SUSE Linux黑屏解决方法