建议 做此题前先去看看这道题:P1739 表达式括号匹配 这道题是作为入门题出现的,主要的思路是用 栈 解决,为什么这么讲呢,emmmm~ STL也算是我们 C++ 党的一大优势对吧 思路 进入正题 我们其实可以将相邻的两个不同的数字给消去,舍去开头的 1 ,例如样例中给的 0111100101 我
题解原因 这篇题解旨在帮助理解,dalao 请忽视。 因为这是一道红题 红题,所以我在这里讲述的详细一点。 题目简介 有 𝑛n 个城市,每两个城市之间有双向通路,耗费时间 𝑎𝑖ai (其实可以理解为长度为
声明 先粘一波代码,首先声明一下 这份代码是在 OI-wiki 的错误的示例代码 (错误有点多,我就不一一指出了) 上进行修改的,我知道有些人是从 OI-wiki 上跳转过来的,但是无奈于不会修改 OI-wiki ,所以在这里发一篇题解来帮助大家理解。 #include<bits/stdc++.h>
思路分析 这道题是一道非常典型的 BFS 题目, BFS 所面临的最大问题是判断重复。显然,如果每次判断重复都扫描一次队列,搜索的效率会非常低,会提高一个指数级,所以一般宽度搜索的判断重复都是运用数组来实现的。那么数组下标就需要用一个 Hash 函数来计算。因此,设计 Hash 函数就显得非常重要。
思路引导 我们可以把电路板上的每个格点 (横线与竖线的交叉点) 看作无向图的结点。若两个顶点 x 和 y 之间的连边。若该方格中的标准件(对角线)与 x 到 y 的线段重合,则边权为 0 ;若垂直相交,则边权为 1 (说明需要旋转 1 次才能连通 )。然后,我们在这个无向图中求出从左上角到右下角的最
我来写一篇大家都能看懂的,很好理解的算法。 这道题比赛时考虑的是可以用桶排的思想,但是比赛时想多了,按照横排去遍历了。 (太***了 经过我赛时的思考以及赛后的努力,我想出了 非常好理解 的方法。看到楼上的 dalao 们用的 STL 大法,我一个蒟蒻瑟瑟发抖~~ 我们先来理解一下这道题目 观察数据
这道题在月赛的时候我本来是 想用 string 稳过的,结果发现看不懂题,没理解不合法的情况,看了看题解没有 dalao 用 string 解,我就来用 string 解一下这道题。 这道题完全可以用字符串来解决,我在这里 @文·和 可以参考一下。 思路 首先,这道题其实我们完全可以自定义它高出的分
看了楼上大佬的解法,应该都没有想到 汉诺塔 与 二进制 还有一层微妙的关系,所以我来介绍一种 二进制解汉诺塔 的思路。 找规律 我们可以观察到这样一种规律: 二进制:需要前面全都变成 1 才能进位 汉诺塔:需要上面的盘子全都移走才能移动。 而这有相似之处。所以我们就可以想,可不可以用二进制来模拟圆盘
分析 首先来分析示例数据 这是按照示例数据画出来的示意图, 那么填过之后就变成了这样 这样太麻烦了,仔细观察图 2,有没有发现一个规律: 其实我们可以这样子: 先把第 1 列的道路先填起来,记到天数 sum 中,然后将第一列下陷的深度后面的深度相比较,若后面的有一个小于它