上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 132 下一页
摘要: ABCD中卡的最久的一道题目,而且是先做了D回过来做才灵光一现的。。。 由于每行每列都要有chip,考虑如果某一行/列没有chip会发生什么 加入某一行没有chip,那么我们显然要保证每一列都有chip,而如果每一列都有chip的话,显然是将所有chip都放在最小的行上;对列同理分析 阅读全文
posted @ 2024-08-12 15:38 最爱丁珰 阅读(22) 评论(0) 推荐(0)
摘要: 看这篇题解 解释一下,如果存在一个点通向父亲的边和某一条通向儿子的边的颜色相同,那么一开始如果起点就在这个点的话,是没有办法向上走的,所以任意一个点通向父亲的边和某一条通向儿子的边的颜色不同 对于非特殊点,我们只要一直走没有重复出现的那个颜色就好了 如果某一时刻走到了特殊点,此时如果特殊点奇偶性均相 阅读全文
posted @ 2024-08-12 15:29 最爱丁珰 阅读(28) 评论(0) 推荐(0)
摘要: 算法的流程看OI-wiki,实现以及统一处理的部分也要看 讲下时间复杂度,显然最外层循环是\(O(n)\)的,主要是看内部的那个while循环的次数。如果是\(i\)在\((l,r)\)的内部,那么只会执行一次,否则的话会执行多次,但是执行多少次\(r\)就会增大多少,整个过程\(r\)单调不减,最 阅读全文
posted @ 2024-08-12 09:48 最爱丁珰 阅读(17) 评论(0) 推荐(0)
摘要: dsu on tree的板子题目,先从暴力思考怎么做,然后就会发现可以用树上启发式合并了 阅读全文
posted @ 2024-08-12 08:33 最爱丁珰 阅读(24) 评论(0) 推荐(0)
摘要: 先考虑暴力怎么做 dfs搜索每个节点,对于当前节点,用迭代遍历其子树并更新答案,在回溯的时候将计数数组清空,时间复杂度为\(O(n^2)\) 注意到,对于每次准备回溯的时候,设当前根节点为\(u\),其父亲为\(x\),在计算\(x\)的时候,如果\(u\)是最后一个dfs计算的(注意此时\(x\) 阅读全文
posted @ 2024-08-12 08:22 最爱丁珰 阅读(25) 评论(0) 推荐(0)
摘要: 非常经典的删数问题,见这篇题解 我赛时的时候考虑的时候删除了\(a_i\)后,有哪些区间会被删除,哪些区间会被加入 删除的区间:最小值是\(a_i\)的区间(\(O(1)\)计算)、\(a_i\)作为一个端点但是\(a_i\)不是最小值的区间(差分维护) 加入的区间:左端点属于\((l_i,i)\) 阅读全文
posted @ 2024-08-11 16:17 最爱丁珰 阅读(48) 评论(0) 推荐(0)
摘要: 很显然我们每轮都要尽可能多地选择怪物,于是可以猜测进行的轮数不会太多 我们转换一下问题,见官方题解就好 设置了\(b\)之后,就转化成了Gem 气垫车这一道题目 看一下官方题解的Another Solution,可以优化成\(O(n)\)的算法 阅读全文
posted @ 2024-08-11 16:07 最爱丁珰 阅读(20) 评论(0) 推荐(0)
摘要: 证明方法看官方题解就好了,主要是注意这种子问题的证明方法,可以学一下 阅读全文
posted @ 2024-08-11 16:01 最爱丁珰 阅读(10) 评论(0) 推荐(0)
摘要: 看这篇题解 主要是复习下将连续的\(0\)看做一个\(0\)的操作,《离散数学》课有一个技巧也是这样 阅读全文
posted @ 2024-08-11 15:47 最爱丁珰 阅读(10) 评论(0) 推荐(0)
摘要: 假设现在有\(n\)个元素,每个元素最开始单独成为一个集合 现在有一种合并操作,可以合并两个集合,假设将集合\(A\)合并到集合\(B\),那么时间复杂度为\(O(|A|p)\),其中\(O(p)\)表示合并一个元素的操作的复杂度,也就是说我们的操作每次是合并一个元素和一个集合,所以我们将\(A\) 阅读全文
posted @ 2024-08-11 10:49 最爱丁珰 阅读(292) 评论(0) 推荐(0)
上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 132 下一页