摘要: 首先看到是个有向图,问如何让两两互相到达,这可用缩点解决。然后求最少连几条边才可以让图联通。在缩点以后这变成了一个DAG,然后如果我们将一个入度为0的点和一个出度为0的点连起来,那么就会消一对。然后答案就是max(入度为0的点的数量,出的为0的点的数量),特判一下整张图是强连通分量的情况 阅读全文
posted @ 2024-04-25 21:02 wuhupai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 看到这道题,首先想到网络流,就是将这条边断了然后跑dij看最大流。这应该只能通过拿到40分。 然后观察这个是怎么么流的,就是将这条边断掉之后要流向另外点,然后另外点再流,最终要流向这个点加上原来的边发现成了环。可以类比网络流流反向边的过程。然后如果夫妻之间在一个环里的话就不行了,否则就是可以的。这个 阅读全文
posted @ 2024-04-25 20:40 wuhupai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 在 Tarjan 算法中为每个结点u维护了以下几个变量: dfn[u]:深度优先搜索遍历时结点u被搜索的次序。 low[u]:设以u为根的子树为Subtree(u)。 low[u]定义为以下结点的dfn的最小值: Subtree(u)中的结点; 从Subtree(u)通过一条不在搜索树上的边能到达的 阅读全文
posted @ 2024-04-21 20:40 wuhupai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 没有 push_down 调了 15 分钟,然后在赛后 7 分钟过的,中间看到E是期望题就去打舟了,哎,再也不摆了(期望能不能别再出现了) 前置知识:文艺平衡树 众所周知,文艺平衡树维护的是序列的中序遍历,可以对于区间进行操作。 翻转?这我熟,fhq 啊!然后大写变小写?简单,再 lazytag 搞 阅读全文
posted @ 2024-04-20 22:08 wuhupai 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 又是一个看不懂的题解...... 如果让第i位选手过题最多,那我们就会贪心地想让前面的人过题尽量少。然后后面过题人数平均一下就可以了,可以证明是会有一种方法满足这个限制的。 阅读全文
posted @ 2024-04-20 19:52 wuhupai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 原 我觉得非常有思维含量的一题 没看懂题解,大佬讲的还是没有看懂 对于一个集合S,不妨设要将这个集合设为蓝色,考虑一个包含元素最多的一个为蓝色的子集T,那么在包含有 S-T集合中的元素 的集合必定为红色,因为如果有一个为蓝色,那么这个与前面那个极大蓝色集合交一下就会有一个更大的蓝色集合,与假设矛盾。 阅读全文
posted @ 2024-04-18 20:51 wuhupai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定k颗有n个点的树对于每个点对 (i,j),求出其在每棵树上的路径经过的点(含端点)的并集大小。 做法: 一个比较简单的想法是搞出每个(i,j)在第k颗树上的点的集合,然后所有树并一下,这个再用bitset优化一下,然后有人就过了,而我这位大常数选手就没过。 首先容斥为求不经过点的交。考虑 阅读全文
posted @ 2024-04-18 18:34 wuhupai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题意 有一个会重复k次的数组,每个人都可以那不超过t种礼物,礼物必须是顺序发的,不能第一个发给第二个,求最少的人的个数。 首先每一个人都必须要取尽可能多的礼物,然后按这个模拟即可。 那么我们就要搞出每一个点往后跳到那里。这个最容易想到的应该是主席树加二分,根据两只\(\log\)跑得快定律我们可以得 阅读全文
posted @ 2024-04-17 21:03 wuhupai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 思路 首先想到一个\(n^{4}\)的dp,观察数据范围,发现这应该是一个\(n^{3}\)的算法,考虑如何优化。首先把转移方程写出来\(dp_{i,j}=\sum_{0\le ii\le i-1,0\le jj\le j-1,\overline{a_{ii+1}...a{i}}\le \overl 阅读全文
posted @ 2024-04-17 20:31 wuhupai 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 以后看到区间最大值不光光要想到单调栈,而且要想到笛卡尔树,而且貌似笛卡尔树用的还多一点,如这个也有用笛卡尔树的写法。看到这道题,最大值的位置相同,就说明笛卡尔树的形态是一样的,既然是计数,我们想到dp,然后一路做上去就可以了 阅读全文
posted @ 2024-04-14 12:07 wuhupai 阅读(1) 评论(0) 推荐(0) 编辑