11 2023 档案
摘要:周五出发去广州,从周三晚上就回家了,然后一直写不进去题。 好,周五了。 好,坐动车去广州了。 车上睡了很久,一会就到了。 好,到广州了。 坐了很久地铁,真的很累。 找了好久旅馆,终于到了。 好累,睡了好久。 打了缩点的板子,睡了好久。 18号了。 好,打车去考场了。 好,8:27了。 好,开考了。
阅读全文
摘要:Messenger Simulator 非常厉害的trick!!!!!!! 然后就是这题。 GCD Counting 我的想法是,GCD>1的链等价于至少存在一个大于1的约数,然后将链按照约数分类统计。 其实,有一个更好的充要条件,就是GCD>1的链等价于至少存在一个公共质因数,按照这个公共质因数分
阅读全文
摘要:here 哥们不会组合数学。 首先类似这题,得出没有回文串的充要条件是没有长度为 3 的回文串。 长度为 3 的回文串, ,只要满足 即可,也就是说奇数位、偶数位抠出来,新数组中相邻的数不相同。 考虑 dp,一种显
阅读全文
摘要:这个题解不错。 首先,10 万组询问,10 万的点和边,能且仅能用并查集判断图的连通性。 看到 & 就要想到非严格单调递减,看到 | 就要想到非严格单调递增。 不难发现样例中答案只有 0,1,2,仔细想想,就会发现不可能存在 2 1 0 的序列,因为一旦有了 2,末尾就一定是 0,和任何数 & 都不
阅读全文
摘要:先写正常写法: 我的评价是,后面的分讨我直接树剖拿下。 我觉得这样分讨方便一点。 lca(u,v)=v(或者u,反证就是一条链的形状),那么 lca(u,i)==i,保证i在链上。 然后还有Y字形路径,lca(u,v)=t,则lca(u,i)=i且d[i]>=d[t]。 统一起来就是 \(lca(u
阅读全文
摘要:数据结构抽象题 法一:总共加 次,我们常数超小的树状数组可以直接拿下!!!(时限4.0s) 法二:答案不多,值域不大,我们分块,块记录数出现的次数,然后用tag维护一下增量,注意cnt里的东西和tag没关系,查询才要用到tag。时间复杂度 \(O(30N\sqrt{N}=10
阅读全文
摘要:貌似没有严格证明的啊。 现在证明一件事,如果一个点是可以走到L的,那么路径上的.没有岔路。 假设有岔路,我们找到从起点开始的第一个岔路,取出其中的这一部分,然后旋转成这种形状。 ... . 因为它是一定要到终点去的(从1来,要到3去),所以必然从1到2,到了2之后。 如果你要求它向左走,或者向右、向
阅读全文
摘要:here 蚌埠住了,诈骗题不会写。 以后遇到这种任意偶数矩阵都有一个要求的,可以大胆猜想它一般无解。 也就是用到奇数+奇数等于偶数这个矛盾点(积累)。 一开始看错题了,其实是: 长宽都为偶数的正方形子矩阵 所以转移的时候只会多出来一个正方形……
阅读全文
摘要:题解的简单写法。 看到值域很小,而且限制我们快速求出贡献的是区间最大值,我们不妨枚举这个区间最大值 ,位置是 。 假如 只有一个的话,那么 一定大于等于 , 一定小于等于 。 假如有多个的话,运用扫描线的思想,然后
阅读全文
摘要:here 首先根据题意,我们不难有数字是连续的这种感悟。 而且限制是值域上的,从下标入手发现难以突破,便从值域上入手。 从小到大考虑每个数字,然后dp,可以参考这篇题解。 至于方案的输出,有两种情况。 只有自己 和 ,直接输出即可。 有自己和 的环,定义print输出
阅读全文
摘要:贪心题,先假设全部都是w[i],然后你发现最多可以放电之咒个数的两倍,贪心加上这么多w[i](从大到小),但是你发现不能全是电之咒。 后面的限制不好用数据结构维护,考虑让数据结构维护的东西天然满足这个限制,那么直接删去一个电之咒然后选就行了。 那么肯定删去最小的电之咒。 维护的东西有: \[\sum
阅读全文
摘要:DFS搜索树上有返祖边,等价于图中至少存在一个环。 充分性显然,必要性。 如果是无向图,那就只有树边和返祖边,不存在横插边,没有返祖边那就是一棵树,与图中有环矛盾。 有向图多了横叉边,但是这样不是环,是个DAG,也矛盾。 这个结论常用于深搜判环。 在Fish Graph一题中,dfs只能找到一个任意
阅读全文
摘要:这篇题解中也只能找出任意环。 here 每次会把环上的后继加进去,所以刚好每个点都被加入一次。 hn[1]是终点x,然后是它的第一个邻居。 调整的证明看魏老师题解,然后这个操作: 就是找到环上第一个与x直接相连的点,然后调整环为这个环。 反证容易证明这个环是极小的。 他就是按照两条红线(任意一个)的
阅读全文
摘要:是我见识少了,真没见过这种的…… 传送门 如果看成有序排列的 配对,那么可以写成 。(因为如果是负数,会在 的时候被枚举到,这样就不用考虑max和绝对值了)。 于是,就是分成恰好长度为 的两组,一组贡献为 ,一组
阅读全文
摘要:今天写线段树合并的时候,忽然想到可以用vector存树,这样就不用算空间了。 然后有了下面代码: void modify(int& u,int l,int r,int p,int k) { if (!u) u=newnode(); if (l==r) { tr[u].max+=k; tr[u].id
阅读全文
摘要:想象一下,冒泡排序交换的两个数一定是原数组的逆序对(反证容易证明:如果不是逆序对,相遇之后不会交换。两个数只有在相遇的时候才会使得下标相对大小互换,相遇之前一定是左的在左,右的在右。而不是逆序对的话,相遇的时候也不会交换,所以就一直不会交换)。 因为有序数组一定没有逆序对,所以逆序对一定换完了,所以
阅读全文
摘要:T1T2送的。 T3貌似有神仙优化方法,但是题解给的是容斥。(既然不好直接求满足条件的方案,就减去不满足条件的方案)。 T4的贪心就是:如果当前能走,就直接走,不然就向上或者向下走到第一个能走的地方。 证明: 假设之前贪心的方法能够取到一个最优解。 任意的走法为红色,贪心为蓝色。 然后你就发现可以通
阅读全文
摘要:https://www.luogu.com.cn/problem/CF1648C 除以相同元素个数的阶乘即可。
阅读全文
摘要:本文思路来自伟大的@FxorG here 二分的单调性:如果 可以,那么小于 的也一定可以(从每排末尾剔除一些人即可)。 主要问题是贪心的选法。 原问题所引出的可能得选人的方案可能是离散的,比如: 2 2 5 当每排人数是2时,一下方案是一种最优解: 1个身高为1的,1个身高
阅读全文
摘要:here 单调性:多加几次,出现的数不会变少,肯定可以二分。 最多操作 次,也就是最多进位一次。 而且最多只会进位一次,对于最后一位在加的过程中出现的值,直接用式子算,然后为了统计出现的数的次数,在其他位的数,如果在最后一位变化的范围里,就不应该加1。 但是题解又有不用二分的做法…… 首
阅读全文
摘要:here 看到分数问题,给出互质 ,令分子、分母为 ,这样可以构造两个等式,如果直接交叉相乘,得到一个等式,显然前者信息更多。优先考虑前者。 以后看到求最值都可以尝试二分。 然后发现如果只是要求数值相等,是一定有解的,但是题目要求分子加上的不超过分母加上的,发现这个是有单
阅读全文
摘要:用排序的贪心一般用微扰法(邻项交换)。 每次决策都是类似的结构的贪心,可以用归纳法证明。 P1182 数列分段 Section II check(x)表示能否将数列分成不超过 段,每段和的最大值不超过 。 首先 肯定是满足这个判定的,而且小于 的分法,分成\(
阅读全文
摘要:传送门 记 为 中 的数的个数。 若 ,则从小到大将负数变成正数最优。 假设不这么操作最优,也就是选了一个较大的负数或者正数取反,将它们换成一个小的负数取反,答案不劣。 若 且 为偶数。 所有数的和为 ,
阅读全文
摘要:看到这么多位运算,拆位考虑。 对于 的一位,要么是0,要么是1。 该位是1,说明有某种 的排列,使得该位上 均为1。(因为 的结果是1,说明全都是1)。 那么我们要优先满足哪一位为1呢? 一个直接的想法是优先满足高位为1,因为\(
阅读全文
摘要:传送门 对于这种网格图的操作,因为是加法操作,所以可以有结合律和交换律,也就是说操作顺序是无关紧要的。 所以从上到下,从左到右考虑所有操作。 对于第一个格子的 ,它一定要被减去1次,而且只能被减去1次,因为只有在它格子上操作才能影响到它,它不可能被其他格子的操作加上1。 此时第一个格子的操作
阅读全文
摘要:昨天duel了好多题,记一下。 Hanging Hearts 这题一看很复杂,又是树形结构,我们考虑用树形DP解决。 那么就只用考虑当前子树的关系了。 要让最长不下降子序列长度最大,我们先想想什么情况会让最长不下降子序列长度变大。 那就是 可以从\(f_j,j<i,a_j \le a_i
阅读全文