摘要: 题目传送门 核心解法(并查集): 关键要理清楚这些关系是怎样的:即通过了解题意可知:假设现在有如下三种动物类型:老虎,老虎的食物,老虎的天敌。所输入的x y都只满足这三种类型(输入m次去判断关系),x y是两个独立的未知种类的动物(即不知道是老虎本体、食物还是天敌)。现在需要通过构建且查询个体间的关 阅读全文
posted @ 2020-03-31 20:44 neverstopcoding 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 方法:这是一道赤裸裸的并查集题目,根据输入先进行合并,合并后根据输入开始查询判断即可。需要注意的是,为了简化题目,实际操作过程中可以用编号来对应姓名,从而表示出不同的学生,并建立相应的联系。 实现代码: #include<bits/stdc++.h> #include <cstring> 阅读全文
posted @ 2020-03-31 20:38 neverstopcoding 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 最开始错误的思路是对整条字串进行dfs,看一位dfs进入下一位,这是没有充分理解题意的后果 核心解题思路:不要被这些规则变来变去搞混了,我们需要将原问题进行切割成小的子问题去分析。例如此处我们将每一位数都当做一个独立单位,首先求出在这个位置上有多少种可以存在的数的种类(0~9)。而这些独 阅读全文
posted @ 2020-03-31 20:28 neverstopcoding 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 题目传送口 很明显,这个题用邻接矩阵+dfs就能出(从不同点出发搜,且搜的时候更新最小值,可以剪枝,并且不成环) 。但算法标签中有并查集,因此此题尝试用并查集的方法来解决类似的连通图问题。 核心算法: 把每一条边按权值从小到大排序,然后依次看,如果两个端点不在一个集合里,就把他们合并,累加路径长度。 阅读全文
posted @ 2020-03-31 19:52 neverstopcoding 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 并查集,顾名思义,就是一个合并和查询的过程,其实际意义类似于等价划分的作用(划分出不同的等价类)。掌握基本的知识和思想后,便可以运用并查集来解决问题。其中,学会使用并查集的模板对解决并查集问题十分十分有帮助。 并查集:(union-find sets) 一种简单的用途广泛的集合. 并查集是若干个不相 阅读全文
posted @ 2020-03-31 19:40 neverstopcoding 阅读(736) 评论(0) 推荐(0) 编辑
摘要: sync_with_stdio 这个函数是一个“是否兼容stdio”的开关,C++为了兼容C,保证程序在使用了std::printf和std::cout的时候不发生混乱,将输出流绑到了一起。 应用 在ACM里,经常出现数据集超大造成 cin TLE的情况。这时候大部分人(包括原来我也是)认为这是ci 阅读全文
posted @ 2020-03-31 02:14 neverstopcoding 阅读(3132) 评论(0) 推荐(5) 编辑