摘要: 求最大值,看二分答案,但是非常困难,看贪心,发现很难贪。考虑dp,找一个没有后效性的来设计状态,发现如果状态是前缀gcd的话就比较好,没有后效性。转移的话就是从大的向小的转移,那么转移方程就是\(dp[i]=max(dp[i],dp[i*j]+cnt[i]-cnt[i*j])\) cnt[i]为i的 阅读全文
posted @ 2024-07-19 20:30 wuhupai 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 首先这个半连通子图一定是由许多强连通子图组成的,那么我们可以进行缩点,然后求有多少条最长链即可。 其实这题一开始我是完全没思路的,但是我觉得在遇到新的问题时要考虑转化,找一个自己类似的学过的东西,在考虑其中的联系和如何转化 阅读全文
posted @ 2024-07-19 20:13 wuhupai 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 首先建出这个图,如果有一些间谍之间可以互相到达,那么贿赂这些间谍的花费即为所有间谍的花费的最小值,那么我们可以缩点,然后用拓扑dp求出答案,如果有入度为0的点不能贿赂,那么就是-1,否则就是所有点的权值之和 阅读全文
posted @ 2024-07-19 20:07 wuhupai 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 求的是s,t路径之间必须经过的点,想到建一颗圆方树,路径上的一个圆点就是答案 阅读全文
posted @ 2024-07-19 19:51 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 所有他的旅行路径中最低售价的最低可能值。那我们可以想到建立一颗圆方树,那在圆方树上就是所有路径上圆点和方点(权值为周围圆点)的最小值。然后发现在更新圆点权值的时候,无法快速更新方点的权值(会被菊花图卡掉)。所以xuzishuai给出了一种方法:就是所有圆点更新时,都只更新它的父亲,这样分讨一下易证, 阅读全文
posted @ 2024-07-19 19:48 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 对于一个拓扑图,可以建反图。首先考虑连边,从a到b的代表val[a]<val[b]。那么DAG上每条链上的时间都递减。同时因为拓扑的性质,时间的要求是可以保证的。从入度为0的结点开始考虑贪心,让限制紧的人先飞,所以我们可以将队列换成优先队列,这样就可以满足这个性质了,因为题目保证有解。然后想让一个飞 阅读全文
posted @ 2024-07-19 19:03 wuhupai 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 最简单的就是枚举两个根,然后进行树哈希。树哈希有且仅与子树的形态有关,如子树的哈希值之和。但是找根的这个实在太慢了。我们可以利用树的重心来进行求解。先求出树的重心,再两两枚举即可时间复杂度O(n) 阅读全文
posted @ 2024-07-19 16:49 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 这题的题意比较简单。我们可以枚举不同的字符的位置,然后利用字符串哈希进行判断,因为所有不存在两个相同的账户名称,所以这个不会算重。 阅读全文
posted @ 2024-07-19 15:34 wuhupai 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 仔细观察题目可以发现,对于那些停靠的车站是没有约束的,而对于停靠的车站是有约束的。因为题目保证了存在方案,那么车站最多分级就是DAG上的最长链。 阅读全文
posted @ 2024-07-19 14:47 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 看到平方,要想到进行质因数分解,然后看指数。所以我们可以对每个数进行质因数分解,然后指数取模后求出它的反,那么这个就只可以从它的反转移过来了。然后就是一个拓扑求DAG最长路。 阅读全文
posted @ 2024-07-19 14:42 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 问你长度最小的区间使得最大值减最小值>=d。发现这个是单调的,那么我们可以二分答案。判定非常简单,利用滑动窗口来进行最大值最小值的求即可 阅读全文
posted @ 2024-07-19 14:34 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 看到这些\(n^{2}\)的并查集,且每次并查集都是连续的,那么我们就可以利用倍增进行并查集(类似st表,贡献可重复问题)。然后我们可以将所有并查集都加进去后在进行下传。比如在P3295中,我们需要算出最后有多少个连通块,那么我们如果[i][k]和[j][k]在一个连通块里,那么[i+(1<<(k- 阅读全文
posted @ 2024-07-19 14:31 wuhupai 阅读(3) 评论(0) 推荐(0) 编辑
摘要: myee讲的题完全听不懂...... 首先题目让我们求的是长度为\(l~r\)的区间且区间和前k大的区间的权值之和。 首先区间和转化为\((sum[r]-sum[l-1])\)那么我们可以对于每个l都插进一个优先队列,发现l固定,那么只要让sum[r]最大即可。这个利用st表维护l~r的sum的最大 阅读全文
posted @ 2024-07-19 13:32 wuhupai 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 看P8600题面比较易懂 这种问区间的题目,一般都是枚举右端点,找有多少个符合条件的左端点。然后容易发现一个性质,如果一个区间最大数的下标减区间最小数的下标+1等于区间长度,那么这个区间就是一个连号。所以我们可以动态维护\(max(a_{l},...,a_{r})-min(a_{l},...,a_{ 阅读全文
posted @ 2024-07-19 08:22 wuhupai 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 分数规划就是选出一些数使得\(\frac{\sum a_{i}}{\sum b_{i}}\)最大最小的题目,但通常需要转换。下面以找最小首先进行二分答案,那么就是找出一个答案使得\(\frac{\sum a_{i}}{\sum b_{i}}\le k\) \(\sum a_{i}\le k*\sum 阅读全文
posted @ 2024-07-19 08:07 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 首先发现如果要变成同一高度,那么花费应该是一个下凹的函数,那么用三分即可 阅读全文
posted @ 2024-07-19 07:52 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 首先看到要求的是最少多少天,考虑二分答案变成判定。然后我们可以通过二分求出每个点最晚的种植时间。有一个简单的贪心,就是要求严格的先取,不严格的后取,用邻项交换法易证。然后就做好了 证明 阅读全文
posted @ 2024-07-19 07:46 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑