
贪心
文章平均质量分 68
sharp_legendgod
这个作者很懒,什么都没留下…
展开
-
CF1458C Latin Square 题解
CF1458C Latin SquareCF1458C Latin Square这里说一下逆排序就是如果说原来位置 iii 的数是 pip_ipi 那么现在位置 pip_ipi 的数就是 iii。直接变成三元组 (i,j,ai,j)(i, j, a_{i, j})(i,j,ai,j) 也就是所有有关的信息。之后直接记录并且修改即可,复杂度是 O(n2+m)O(n^2 + m)O(n2+m) 的。#include <bits/stdc++.h>using namespace原创 2021-09-21 21:04:07 · 209 阅读 · 0 评论 -
CF1458D Flip and Reverse
CF1458D Flip and ReverseCF1458D Flip and Reverse题目还是挺清晰的,直接讲思路了。首先考虑进行 dp\tt dpdp 或者贪心,但是直接进行感觉上无法处理上述的限制。那么我们从限制进行考虑,最好去掉的限制显然就是数字相同,那么如果说进行对于字符串进行前缀和之后两个前缀和相同的位置 l−1,rl - 1, rl−1,r 其实对应一个合法的 [l,r][l, r][l,r] 区间。之后我们考虑区间翻转和反转正好就是反着遍历这段区间,那么我们对于权值 s原创 2021-09-21 20:51:10 · 286 阅读 · 0 评论 -
CF1550F Jumping Around 题解
CF1550F Jumping Around CF1550F Jumping Around经典的转化,可能有点正难则反的意味。文章目录我的思路:\textbf{我的思路:}我的思路:题解:\textbf{题解:}题解:我的思路:\textbf{我的思路:}我的思路:可以看出因为 ddd 是不变的,所以对于一个逐渐增大的 kkk 可以到达的点是逐渐变多的,换言之就是具有单调性。有一个比较显然的想法,就是离线一下 kkk 考虑从小到大进行计算。考虑暴力,就是对于每一个 kkk 建图跑..原创 2021-09-13 18:44:18 · 196 阅读 · 0 评论 -
HDU6580 Milk 题解
HDU6580 Milk HDU 6580 Milk校内考试题目,感觉考试的时候没看这题,之后还被恶心了一下 …\dots…。文章目录考试的经过:题解:考试的经过:搞 T3\tt T3T3 嗯,很好简单二项式反演。好最后转换错了,没了。之后 30 minutes\tt 30 \ minutes30 minutes 诶呀这个不是网络流题吗?高分暴力呀!!之后没写出来,显然网络流不能处理这个东西,及时说每次修改终点那一段的权值。仅仅是样例就能说明费用流显然是直接...原创 2021-09-12 20:56:51 · 148 阅读 · 0 评论 -
[USACO08NOV]Toys G 题解
[USACO08NOV]Toys G首先可以网络流建图,但是因为 nnn 的范围很大,所以我们考虑换一种方法。首先考虑网络流建图的时候我们是考虑拆点之后进行跑流量,对于所有满流的情况我们计算一个最小费用。我们对于这种情况不妨进行二分答案之后进行判断,显然我们二分的不能直接是答案。我们考虑那个条件我们知道了之后可以进行贪心或者 Dp\tt DpDp。总共就那么几个条件,只有购买了多少个是不知道的。那么我们就二分买了几个玩具。简单思考可以发现对于买的玩具数量和花费是一个二次函数,下凸,进行三分。具原创 2021-09-09 19:02:00 · 191 阅读 · 0 评论 -
[BZOJ 4973] 比特战争 题解
bzoj [Lydsy1708月赛]比特战争其实不是那么想写,但是这题毕竟困扰了我很久,还是动笔了,可能笔者自己也没有很懂,希望大家能谅解一下。本文仅仅是自己的想法罢了。对于一个连通分量我们可以考虑两种形式也就是要么其自己内部占领,要么是外面来的士兵占领。如果是外面来的士兵肯定贪心得选取最小的边。对于最小的边我们不妨考虑一下最小生成树,如果一个连通分量在最终情况下是被外部占领的,那么肯定是选择一个最下的边。如果其不被占领肯定又是一个子问题。这里通过观察可以得到一个结论,对于最优的答案存在一种构原创 2021-09-03 08:16:27 · 218 阅读 · 0 评论 -
CF855G Harry Vs Voldemort 题解
CF855G Harry Vs Voldemort根据 hater\tt\color{black}{h}\color{red} aterhater 的话,这个东西放到现在有 280028002800。显然恶评。就是对于一个 333 元组,我们发现本质就是树上两条路径合并的问题,那么我们像淀粉质一样将每个点作为 Lca\tt LcaLca 计算答案即可。那么一开始的答案就是 ansu=(n−1)×(n−1)−∑v∈sonusizv×sizv−(n−sizu)×(n−sizu)ans_u = (n原创 2021-09-02 21:45:26 · 207 阅读 · 0 评论 -
POJ-1847 Tram 题解
Tram(电车)本题是一道英文题此为翻译电车萨格勒布的电车网络由许多交叉路口和连接其中一些的铁路组成。在每个交叉路口都有一个开关,指向从交叉路口出来的一条铁轨。当有轨电车进入交叉路口时,它只能沿开关指向的方向离开。如果驾驶员想要采取其他方式,他/她必须手动更换开关。当驾驶员从交叉路口A到交叉路口B进行驾驶时,他/她试图选择将最小化他/她必须手动更换开关的次数的路线。编写一个程序...原创 2019-08-25 17:54:03 · 708 阅读 · 2 评论 -
CF757G Can Bash Save the Day? 题解
CF757G Can Bash Save the Day?时间复杂度分析好题(大雾)。将询问拆成几部分,也就是 dis(u,v)=dep(u)+dep(v)−2∗dep(Lca(u,v))dis(u, v) = dep(u) + dep(v) - 2 * dep(Lca(u, v))dis(u,v)=dep(u)+dep(v)−2∗dep(Lca(u,v))。显然对于 LcaLcaLca 我们直接进行树链剖分即可。我们对于每一个 vvv 维护 ≤l\le l≤l 的 dep(Lca)dep(Lc原创 2021-08-31 15:47:15 · 174 阅读 · 0 评论 -
CF827F Dirty Arkady‘s Kitchen 题解
CF827F Dirty Arkady’s Kitchen说实话这个拆点和拆边都是可以过的。发现边是可以重复经过的,那么对于两条边只要考虑奇偶性就好了。我们考虑对于一条边拆成两部分,一个是起点为奇的,另外一个是偶的。什么时候一条路径是合法的,也就是说对于一条边 EEE,起点到他的路径上肯定存在一条边的上界是 ≥El\ge E_l≥El 的。注意这里边是会消失的。然后考虑加边的顺序,比较显然直接是从小到大进行加边。这样对于我们路径的上界肯定是从拓扑序比起小的边得到的,也就是意味着这条边出原创 2021-08-31 11:02:38 · 166 阅读 · 0 评论 -
CF1523H 题解
CF1523H首先这个东西很像一个 dpdpdp。我们不妨将删点记录成一个状态,然后发现状态数量太多了,我们可以倍增优化一下状态数量。设 f(i,j,k)f(i, j, k)f(i,j,k) 表示从点 kkk 开始删除了 jjj 个点,走 2i2^i2i 个点能到达的最优的点。我们考虑最简单的情况,就是从 iii 开始走 jjj 步能走到的最优的点。答案是 x+axx +a_xx+ax 最大的点,因为对于一个 y>x,ay+y<ax+xy > x, a_y + y < a_x原创 2021-08-31 08:40:46 · 121 阅读 · 0 评论 -
CF1446D2 题解
CF1446D2 Frequency Problem (Hard Version)将一种 O(n)O(n)O(n) 的神仙做法,代码转载于 gmh77gmh77gmh77 神仙。说实话这个我也不懂算不算转载,如果有问题可以直接私聊我。考虑对于最终答案来说,我们重复计算不符合条件的比较小的区间是不影响的。所以我们可以考虑对于每一个非众数进行计算。计算只有一个众数的情况虽然说可能出现了两个非众数,但是肯定存在比其更大的区间。计算多个众数的情况,我们不妨记录一下众数的位置每次来跳众数,原创 2021-08-29 09:08:20 · 244 阅读 · 0 评论 -
平面图转对偶图的应用
平面图转对偶图[BeiJing2006]狼抓兔子这个是经典题,显然就是求一个最小割。然后网络流建立无向图即可。但是如果数据范围没有那么小呢?众所周知网络流的复杂度其实挺玄学的,而且这又是一张平面图,不妨将其转化为对偶图。定义:平面图:任意两条边不相交的图。面的次数:边界的长度,用 deg(Ri)deg(R_i)deg(Ri) 表示。阶:几阶就是几个点。对偶图:本质上就是从平面图的面相互连边。性质:1:平面图的面数量等于对偶图点数量,对偶图面数量等于平面图点数量。2:对偶图一个原创 2021-08-28 10:19:03 · 911 阅读 · 0 评论 -
LOJ「HEOI2015」最短不公共子串 题解
「HEOI2015」最短不公共子串题目大意:给两个小写字母串 A,BA, BA,B 请你计算:AAA 的一个最短的子串,它不是 BBB 的子串。AAA 的一个最短的子串,它不是 BBB 的子序列。AAA 的一个最短的子序列,它不是 BBB 的子串。AAA 的一个最短的子序列,它不是 BBB 的子序列。简单题。看了一下网上的题解有用 dpdpdp 的。但是既然是最小长度可以考虑使用广度优先搜索。首先这个可以保证找到的第一个就是最优解。其次因为我们两个自动机都是按照深度向下排序的,那么本质原创 2021-08-26 09:22:24 · 261 阅读 · 0 评论 -
CF1553I Stairs 题解
CF1553I Stairs说实话网上的题解真的少,这个算是当前最详细的吧。请原谅我参考了别人的代码,还跑得巨慢的这一事。不过还是 O(n2)O(n^2)O(n2) 过去了,嘻嘻。有两个思路,是将贡献不同时间计算的结果。首先一个合法的序列,肯定是将数值连续的一段拿出来,然后可以分成若干段等长的。这个一开始判断一下即可。之后我们将分段拿出来不妨将其记录为 sss 数组。一个合法的序列就是不能有任意两个 sss 构成单调序列。但是这个需要复杂度较高的 dpdpdp,我们考虑通过容斥改成钦定有原创 2021-08-25 08:06:51 · 214 阅读 · 0 评论 -
CF738 div2 VP 总结
CF738 div2 VP主要是 Alkaid\tt AlkaidAlkaid 这个老哥要打。然后早上我在写题,写完了发现他还在搞 CCC。那就顺便打一下。感觉上我的水平 EEE 是做不出来的。因为我一直在想质因数分解 …\dots…A\tt AA睿智题目,题目上说操作次数是无限的,所以最终答案每个数都能被 &\&& 一次。因为 &\&& 后的值不会变大,最终答案就是每个数 &$。B\tt BB因为我比较懒直接一个 dpdpdp 就搞原创 2021-08-23 14:30:41 · 444 阅读 · 0 评论 -
CF1534F2 题解
CF1534F2发现这是一个 444 联通问题。我们先考虑建图。我们需要每一个序列都满足条件,那么我们可以选取最低的点然后考虑其被左右两边影响的区间,也就是左右两边任意掉落一个沙子即可将其掉落。这个可以使用 dfsdfsdfs 解决。然后我们就得到 nnn 个满足条件的区间。我们将题目变成了给定 nnn 个区间,选择最少的点使得每一个区间至少有一个点。我们按照左端点为第一关键字,右端点为第二关键字排序。尽量选右边的点即可。#include <bits/stdc++.h>using n原创 2021-08-17 21:27:51 · 323 阅读 · 0 评论