07 2024 档案
摘要:看这篇题解就好了 解释一下为什么山谷=山峰 证明加强结论:对于每个环,山谷=山峰 证:对于任何一种方案,这种方案下的任意一个环,我们断开某条边,他就会长成这个样子: 起点和终点连起来,不难发现是山谷=山峰 再假设我们已经定下了山谷和山峰的个数 ,那么 的上界就是\([1,n
阅读全文
摘要:第一次自己独立做出来的*2500,纪念一下 首先模拟样例不难发现我们可以确定在 中出现过的数字(称这些数为“固定数”)的相对顺序(比如第一个样例,相对顺序为6 4 2 5,我们只用插入 和 就好了),用链表维护就好了 考虑剩下的某个数 ,不难发现它能放在的地方必须
阅读全文
摘要:看到这种类似的括号匹配的题目,一定要想到卡特兰数的证明过程呀(将(看成 ,)看成 ,于是不难得出充分条件,虽然这道题目并不是直接这么给的,但是我看没人证明) 剩下的看官方题解就好了,之所以可以删掉官方题解所说的 ,是因为接下来如果 是 的答案候选项的话,
阅读全文
摘要:若存在这么一条直线 ,那么找到这个公共交点,过这个公共交点作与 垂直的直线 ,那么 与所有线段都相交;反之,如果存在一个直线 与所有线段都相交,那么作一条直线 与 垂直,两者的交点肯定就是公共点 于是我们现在的任务变成了判断是否
阅读全文
摘要:枚举 ,认为这是第 列唯一的 ,于是就可以发现其他行是否变换就固定了,于是就可以暴力统计答案 考虑优化,对于一种变换方案,它所产生的只有一个 的列是固定的,而对于这些列,我们在枚举到他们的唯一的 的位置的时候,得到的变换方案也是固定的,所以变换方案与这
阅读全文
摘要:没啥思路看样例,不难发现一种特殊情况,即 ( 已经经过排序了),那么答案显然就是 否则的话,有所有数都是 的约数,于是任取若干个数出来,他们的LCM一定也是 的约数(公倍数一定是最小公倍数的约数),于是我
阅读全文
摘要:看这篇题解就好了 没办法总结出什么东西来,也做不出来。。。
阅读全文
摘要:我的赛时做法 对于或运算来说,就可以考虑两个 之间的东西(与运算就考虑两个 之间的东西) 另外这道题目也可以二分(我赛时想到了二分的,但是没有证明出来单调性所以不敢写,以后证明不出来,直接造数据写暴力就可以一眼丁真了) 证:假设 行,设\(a_1|a_2|...|a_{k}=
阅读全文
摘要:像这种光标最多加一的,都可以用对顶堆/对顶栈去做 update 2025.1.9 注意,如果要写树结构的话,是要写平衡树的,不是手写堆,手写堆实现不了题目要求的功能
阅读全文
摘要:考察每一步操作会改变什么 如果当前朝上的硬币的邻居为一上一下,那么朝上硬币总数会少一 如果当前朝上的硬币的邻居为两上,那么朝上硬币总数会少三 如果当前朝上的硬币的邻居为两下,那么朝上硬币总数会多一 不难发现每次操作都会改变朝上硬币总数的奇偶性,而如果这个数量为奇那么一定可以操作,如果为偶那么要么可以
阅读全文
摘要:这道题目跟Neo-Robin Hood很像,所以思路也差不多 具体见官方题解就好了
阅读全文
摘要:看这篇题解 我是想到了第一个策略的,但是没有想到接下来的转化 讲一下线段树那么是为什么:对任意 ,用一个数组 表示 中出现次数为 的数的个数,用线段树维护这个数组,由于我们只新加进来一个数,所以新检查的区间的结尾一定都是 ,于是可
阅读全文
摘要:看这篇题解 首先要回忆一下握手定理,所以奇数度点一定有偶数个;其次回忆一下树的必要条件,每个点的度数都大于一的话肯定不是树;然后再尝试构造,从特殊图,样例等等出发
阅读全文
摘要:看这篇题解 我观察出来了前两条,但是第三条没有看出来,导致不知道MEX是固定的
阅读全文
摘要:这种题目还是比较脑洞了。。。 以一种情况为例,考虑petal 和 ,那么我们要最大化 ,我们先一直买 ,最后不能买了(因为钱不够了),假设此时刚好可以买一个 ,那么答案就是 ,否则的话我们尝试将一些 换成 ,
阅读全文
摘要:读题读题读题读题!明明读题好了就能做的。。。 注意是将 和 减一,而不是将之间的所有数减一(就是这里读错了导致做不出来) 看起来很像差分,于是不难想到将 看做原数列 的前缀和的差分数组,就不难发现操作一不会改变前缀和的总和,而操作二会使总和加一,于
阅读全文
摘要:看这篇题解就好了 没做出来的原因是因为没有好好读 到底代表什么,没有将式子列出,二分还是挺明显的
阅读全文
摘要:采用正难则反的思想,假设已经给定了每一回合的赢家以及最开始的顺序,那么最终的赢家就是从根节点往下走,每次经过红边最终走到的节点 如果sponsors一次都不改变,那么路径显然是固定的,由题意,sponsors最多可以改变这条路径上的 次选择(向右儿子变成向左儿子,或者反过来);不难知道路径与
阅读全文
摘要:第一次在考场中做出来的E题,rank也是来到了20,纪念一下,一定要相信自己呀 构造方法见官方题解,证明见下: 对于原始串 ,如果第一个(从左往右数)相同交界不折,选择折后面的交界,那么根据决策包容性,我们可以折一下第一个相同交界,答案不会更差,如下 如果不折第一个交界: 对于最终方案我们折
阅读全文
摘要:这个看官方题解就好了,我做出来了,考试的时候好像是看样例盯出来的
阅读全文
摘要:看官方题解就好了 还记得这是什么方法吗?《离散数学》的“蚕食游戏”! update 2024.8.15 实际上将所有石子从小到大排序,然后做差分数组,就转化成了渐进NIM博弈。这样看来,蚕食游戏就是渐进NIM博弈的思路 怎么想到做差分数组的?先考虑 比较小的情况,自然就会往差分数组方面去想了
阅读全文
摘要:寻找下界+构造的技巧别忘了啊,这道题如果想到了这个技巧还是很简单的 看这篇题解就好了
阅读全文
摘要:看这篇题解 这个方法就叫转变式子法吧
阅读全文
摘要:洛谷的题解还没看,看看有没有什么可以吸收的 解释一下官方题解 次询问是这么来的:对第一类情况,我们每次至少砍掉 个点,最多砍 次,然后做第二类情况,我们问一次叶子,就要问一次根来判断目标是否还在这棵树里面;对于第三类情况感觉只用问\
阅读全文
摘要:可以看看官方题解,说一下我的赛时做法 肯定操作二看起来都要优秀得多 不难发现,相邻两行不可能放两个及以上操作一,否则的话直接用两个操作二替代 利用数学归纳法考虑,对于第一行,我们要么用操作二,然后再去考虑之后的,要么用一个操作一(这要求第一行的黑色格子不超过 ,而此时显然用操作一更好),再去
阅读全文
摘要:赛时做法: 考虑特殊元素,叶子,显然叶子要与其父亲合并,于是不难拓展出一个解法:对每一个节点,维护其度数以及包含的点的数量,队列里面放着当前图中度数为 的点,取出队首,将其与其父亲(也就是唯一与其相连的点)合并,如果合并之后包含点数大于 ,那么无解,否则的话将其父亲的度数减一,如果此
阅读全文
摘要:这道题目本身很简单,我要说一下怎么一下子想到的,这个思想其实在很多交互题都可以用 我们第一次猜,一定不会删除物品,因为我们的程序删除的物品是固定的,在没有提供任何前提条件的情况下,我们很有可能直接将mimic删掉了,所以一定是不删除物品,所以输出 ,于是不难发现解法
阅读全文
摘要:做的时候就差如何得出一个点到两个不同的出口的最短路和次短路了啊 分类讨论 如果图不能到达出口,那么可以把所有'.'都填了 如果图只能达到一个出口,那么就是所有'.'的个数减去起点到这个出口的最短路 如果图可以到达两个及以上出口,考虑填满陷阱之后,图长成什么样子:此时一定刚好还剩下两个可到达的出口,所
阅读全文
摘要:说一下大致思路,见这篇题解 在往下传的过程中,会有动态边变成静态边,如 于是可以递归进行reduction和contraction
阅读全文
摘要:这是CDQ分治优化1D/1D动态规划的模板题(1D/1D动态规划的概念见OI-wiki) 一般来说,优化的1D/1D/动态规划,在转移的时候是由不等式作为条件的,所以可以像这样转化为三维偏序 用线段树进行如下维护: 1.维护区间最大值 2.查询区间最大值的某一数组的和 代码见下(一定要学会将数组翻转
阅读全文
摘要:还没有仔细看官方题解和洛谷题解,重新做的时候看一下有没有什么可以吸收的 说一下我的做法:首先看到第二个条件,不难想出 和 只有可能选一个,此时观察样例,以及发现 刚好有 个数,所以不难想到最终 的构造方案是由 ~ 的每一个数或其相反数组成
阅读全文
摘要:这道题目就用的是“利用数学归纳法构造”的方法 具体看官方题解就好了,我做这道题目的时候主要是看的样例,然后显然可以尝试添加两个 在末尾,但是还剩下两个数,然而此时我们数位多重集已经定了,所以依次尝试 ,会发现\(10609=10
阅读全文
摘要:这个看官方题解就好了,我赛时做法也是官方题解 只是讲一下官方题解说只关注"free rows"的原因:注意可放的位置一定都是对称的,所以某一行没有车,则对应列一定没有车,某一列没有车,对应行一定没有车,所以可以DP计数
阅读全文
摘要:看官方题解就好了 思路就是找特殊元素,先找出答案上界,然后 肯定是特殊元素,然后注意到另一个数是最小的就可以了(因为除了必须位是 ,其余都是 ) update 2024.8.17 而且观察询问次数,是 ,由于 为一万,所以提示我们线性询问而不是\(\lo
阅读全文
摘要:这道题目采用模拟法 官方题解的思路 所以题目如果只让交换一次的话,只能用这个 我的思路大体与官方题解一样,但是我并没有观察到 的情况 是不变的,此时我采用的操作是先交换 和 ,然后重新跑一遍二分,再交换新的 和 ,用两次操作,易知答案O
阅读全文
摘要:好题,做的时候想到了对于一个询问,最多只会经历 次修改,在看了hint3之后也想到了转换考虑对象,即明白每一步操作只会在端点处发生变化 但是想到上面是不足以做这道题目的,来解释一下官方做法 官方做法最重要的想法就是先处理 ,然后记录下每一层剩余的数组。这个其实也是
阅读全文
摘要:点对统计,想点分治 设 表示从根到 /从 到根,起点所需要的最小油量(起点加油终点不加油), 表示对应情况按照最小油量出发,最后剩下的油量 剩下的就比较简单了,具体见代码 当然也可以看看这篇题解,这个转换也是比较显然的
阅读全文
摘要:将最少需要多少代价想出来了,但是没有想出像这篇题解一样的构造 我的构造是考虑 所在的连通块,设 是第一个没有在这个连通块中的数( ~ 都在),那么就连接这两个连通块;如果中途连接的过程中不会出现某个 是 那么答案显然是下界,否则的话我们可以知道
阅读全文
摘要:题解都说了,当统计 为根节点的时候,答案就是满足以下条件的 的数量: 且 ,设这个数量为 。以下严格证明 首先对于满足这个条件的 ,其子树的叶子节点显然最多只有一个有农夫(否则就放多了) 我们考虑任意一个
阅读全文
摘要:这道题目卡常卡了两个半小时仍然没有卡过。。。等进队了让队友帮忙卡一下吧 主要想一下思路 最主要的就是在计算路径长度的时候,假设当前递归到了点 ,那么从点 出发的两条路径合并在一起,如果第一条边的颜色相同的话就会重复计算,为了解决这个问题,我们只用对每个点进行排序,将相同颜色的点放在一
阅读全文
摘要:赛时用的点分治,好像还可以用虚树,熟悉虚树之后回来做这道题目 但是有个与dfs相关的遍历算法,见这篇文章 这个 表示的就是对于当前遍历到的节点 ,其子节点有多少个满足题目所求的路径(而且在回溯的时候更新答案), 表示的就是对于当前遍历到的节点 ,已经遍历过的节点有多少
阅读全文
摘要:这个看官方题解就好了,解释一下官方题解 首先一个很大的前提(也比较显然),就是为了达到最优的情况,我们只会让一个史莱姆一直吃,而不会让两个史莱姆都吃,最后再让其中一个史莱姆将另一个史莱姆吃掉 这一个区间指的是,只有这个区间的史莱姆进行互相吃,相当于忽略了区间外的史莱姆 剩下的都挺清楚了
阅读全文
摘要:官方题解的证明很严谨,可以看一下 也可以从上下界的角度考虑,每两段 中间的 的总和显然是下界(我们每次操作最多只能让这种 减少一个,而最终的序列要求没有 );考虑构造下界方案,每次对最后一个 进行操作即可
阅读全文
摘要:想到了上界的,但确实构造不来 构造方法就看官方题解就好了,我们单个单个考虑就很困难,所以直接分成两组,一组的最小值大于另一组的最大值就好了 update 2024.8.17 由于 是偶数且我们考虑了上界了,我们可以知道上界是 ,显然对于一种构造方案,来形成lo
阅读全文
摘要:可以纯模拟,但是也可以用hash,而且细节更少,容易写对 见这篇文章
阅读全文
摘要:这个看官方题解就好了,很清晰 找LCA我用的方法就是一步一步跳,复杂度为 看到了诸如 或者 这种就可以想线段树的编号方法 最后证明一下为什么奇偶性不同就一定无解 我们将起点和终点写成下面的形式 从起点走
阅读全文
摘要:看官方题解就好了 将非邻项交换变成邻项交换也是常用技巧,复习一下 遇到邻项交换了想逆序对也要记住 最后的构造方法也可以这样:先将逆序对数较少的变成顺序序列,然后此时由于奇偶性相同,另一个序列的逆序对一定是偶数,于是显然可以将两个序列变成一样的
阅读全文
摘要:类似分形图(主要是想一下代码怎么写) Ans && Conclusion 分形图的代码大概都这么写 update 2024.8.13 需要打表构造最小单元的分形图,见这篇题解
阅读全文
摘要:先考虑如何处理单个询问,看到了最大值最小,不难想到二分 普通二分怎么做呢?设当前二分值为 ,就不用考虑美味度小于 的果汁了,于是就变成了一个简单的贪心问题,只需要将果汁按照价格排序,然后依次选择(注意选择的果汁不能超过 ),最后选取了 升之后,查看总价
阅读全文
摘要:这道题目看官方题解吧,最后那个式子是在找逆元 不知道总结什么。。。
阅读全文
摘要:这道题目看官方题解就好了,写得挺清楚的 做这道题目的时候,由于是字典序最小,所以一直尝试将最小的尽量往前面放,但是这样却做不出来,所以这道题目告诉我们,字典序最小也可以尝试将最大的尽量往后面放 证明一下官方题解的构造过程: 利用贪心的决策包容性。 假设后面的数都是最优放置了,对于当前位置如果不放\(
阅读全文
摘要:如果这道题目知道了倍增优化建边,还是比较简单的 所以复习一下倍增优化建边吧 update 2024.8.18 构造题,转换为图论之后考虑特殊元素,不难发现用拓扑排序。由于有大量的边,于是想到倍增优化建边
阅读全文
摘要:明明想到了的,却没敢往下面想。。。 利用找出上界+构造上界的方法 然后就可以看题解了 关键性质都想到了啊,却没敢往下面想。。。
阅读全文
摘要:这道题目就看官方解答吧 本来这道题目是构造题,但是题目要求计数,计数肯定就很多了,所以我们不能像传统构造题一样,去想如何特殊地构造出一个序列来,这里就要去想满足条件的序列有什么共性,所以我们就假设已经找到了序列 ,然后去想想Koxia怎么必胜 于是不难发现引理一(这个可以感性理解一下,如果给
阅读全文
摘要:这个比较简单,随便找一篇题解看就好了 证明一下按照可操作位置数量排序之后为什么一定有解: 由于题目说了一定有解,所以对于任意一种操作方案(为了简便,操作方案只包含修改操作不包含复制操作),先操作的的可操作位置数量一定比后操作的可操作位置数量多,所以证毕
阅读全文
摘要:这道题目看官方题解就好了,这个转换图论挺显然的 证明一下为什么最后一定是 显然练完贬值后图只能长成这个样子 在消掉长度为 的环后,如果说图没边了, 那么显然就不用交换了,否则的话我们任取一条边 那么对于 号点来说,要么没出边,要么出边的终点是 号点(因为没有长度为 的
阅读全文
摘要:看这篇题解 来证明一下 假设从 喝到 ,那么肯定至少喝了 瓶白酒,如果大于 瓶白酒,我们将右端点减少,而当右端点减少到 时,由于我们选择的 是让 最大的,所以此时白酒数量一定小于等于 ,于是由介值定理可得 这
阅读全文
摘要:分类讨论题目尽量减少分类讨论的情况 显然图像有周期,像这种有周期的,尝试平移到一个区域里面进行计算 这里我们将图像平移到第一象限,然后利用容斥原理计算即可,这里分类讨论的情况就要少很多了
阅读全文
摘要:像这种自己主动构造图的,尝试构造特殊图 如:链,树,菊花图等等 这里构造链,做法即官方题解,写的很清楚
阅读全文
摘要:主要是复习二分+哈希的思想,考虑贡献的思想也比较自然,题目也不是很难 然后想一下怎么 用差分维护一次项系数和常数项系数,具体下面的代码 #include<bits/stdc++.h> #define ll long long #define ULL unsigned long long using
阅读全文
摘要:可以就看官方解答,写的比较清楚 这个引理好像比较重要,可以记住,看看洛谷题解的思路 说下官方解答最后一段的意思:这么做就可以保证不会因为添加 三个字母中的某一个字母而产生回文串,比如添加 ,添加的地方前面是 (或"a symbol that wasn't used")
阅读全文
摘要:看这篇题解 只能说以后看到hard version的先将easy version的做一遍,剩下的想法也比较自然了 update 2024.9.6 重新做一遍,做出来了,按照模拟加分类讨论做的。从 开始,若一直不降到 ,然后有 ,就考虑怎么样把\(a
阅读全文
摘要:这里使用观察法得出做这道题目的做法 注意到数据范围 ,而询问的次数不能超过 ,所以很明显的提示我们询问的次数在 的左右 于是可以得出做法,具体见代码,非常easy,可以尝试证明一下,注意别忘了 都是偶数
阅读全文
摘要:这个就看官方题解就好了,写的很清楚 考试的时候把easy version给做出来了,但是对于hard version确实没有想到可以转换成位运算 所以以后看到 ,不妨想一下是不是位运算,这里将最后的式子一列就知道是位运算了
阅读全文
摘要:先来讲一下我的做法 在考虑特殊元素无果之后,我们尝试模拟法,即模拟什么时候从放一个序列的元素变成放另一个序列的元素 由于对称性,我们不妨假设最开始放的 那么就有 ,假设指针一直到 ,则 ,然后 ~ 都被放入了
阅读全文
摘要:这道题目与“分形之城”这道题目很像 我的赛时代码是用数组记录的,实际上洛谷第一篇题解的代码,更完美的利用了分而治之的思想(子问题是相同的)
阅读全文
摘要:有利用数学归纳法思想的扩展法,就有反过来的删除法,这里利用删除法 考虑对于一颗合法的树,显然删除某两个叶子,会让其共同父亲变成叶子,这就形成了一个递归的过程;而某两个叶子在序列 中也一定是相邻的,而且很容易发现特征,就是其 的大小相差 但是现在的问题就是我们不知道删除哪两个
阅读全文
摘要:复习虚点就好了,可以看这篇题解 另一种处理方式是认为每条边的长度都是 ,求出最短路之后将求出的最短路除以 就好了 update 2024.8.16 其实这个建虚点还是边转点的操作,可以记住一下 边转点不一定非要点转边,就像这里一样,将原图的点作为过渡也行
阅读全文
摘要:首先一个很显然的地方就是使用传送门肯定是在叶子节点使用,我们来考虑一下整个过程是怎么样的 为了方便,我们不妨假设可以传送回根节点 次,然后要求最后回到根节点 我们先从根节点走到某一个叶子结点,然后再从这个叶子节点走到另一个叶子节点,然后继续走到另一个叶子节点,一直这么下去,最后从某一个叶
阅读全文
摘要:可以看这篇题解 最开始的条件化简应该挺简单的,需要吸收的就是单独考虑 的极长合法子串(没做出来就是因为一直拘泥于二维的正方形,没有想到这个正方形可以映射到 轴和 轴的交线) 以题目给的样例为例, 的极长合法子串的长度为 , 的为
阅读全文
摘要:这道题目看到样例以及 的数据,可能会往将 拆成二进制的方向去想,然而事实却证明,一点关系也没有 官方题解的数学推导看看乐子就好了,但是对 从大于 的数开始讨论还是比较重要的,看这个评论 upte 2024.8.25 这个评论告诉我们的启示还是非常重要的。重新
阅读全文
摘要:这道题目的官方题解写的挺清楚的 给的样例二和样例三是提示;然后这种字符串的形式 记住吧 update 2024.8.25 官方题解的方法谁想得到呢?建议看这篇题解,涉及的技巧也都见过,相同且相邻的元素分块,利用已知构造未知
阅读全文
摘要:这道题目不用写,因为必须要求用kotlin语言 讲一下我做这道题目的过程 我最开始正着想,如果 比较大的话,我们就想一次删的数少一点,所以考虑一次操作有哪些数被保留,于是我们发现,原序列的极大值点会被保留,于是一次操作被保留的数最多的情况就是如下的波浪形: 然后我们就发现正着想很难构造了,于
阅读全文
摘要:官解的方法二就是这篇博客(注意要先将 从小到大排序),补充一下,博客中说当 时,我们就找第 列的那个房子即可 我在做的时候,也想到了逐个构造的方法,然而我在构造新的一列时,却总是想让这一列的房子与前一列的房子来配对,事实证明,我们构造的时候不要拘泥于数
阅读全文
摘要:也不知道怎么想到的,反正放在对角线是没有什么问题的 就往特殊的想吧 当时的心路历程是这样的:肯定要利用 为偶数嘛,于是就想偶数是怎么走出来的,可以知道如果路线走成 形且 的两条直线长度相等(或者其旋转)那么就是偶数,于是就可以想到放在对角线上
阅读全文
摘要:这里主要想一下怎么简化讨论 由于在同一块长方形中,横着走不用花费,于是我们可以统一地将 所表示的正方形,都变成其所在的长方形的左边一个正方形,这样发就好表示了,也就是这篇题解
阅读全文
摘要:我只能说,打表也是构造的一种 update 2024.8.19 打表的话肯定不是把所有可能的字符串(最多有 种)全部写出然后循环枚举,而是应该直接随机生成 个字符串,然后判断 提醒一下,如果用map判重,template不要写<char *,bool>,好像是char *只
阅读全文