07 2024 档案

摘要:看这篇题解就好了 解释一下为什么山谷=山峰 证明加强结论:对于每个环,山谷=山峰 证:对于任何一种方案,这种方案下的任意一个环,我们断开某条边,他就会长成这个样子: 起点和终点连起来,不难发现是山谷=山峰 再假设我们已经定下了山谷和山峰的个数a,那么2(xy)的上界就是\([1,n 阅读全文
posted @ 2024-07-31 22:46 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:第一次自己独立做出来的*2500,纪念一下 首先模拟样例不难发现我们可以确定在l,r中出现过的数字(称这些数为“固定数”)的相对顺序(比如第一个样例,相对顺序为6 4 2 5,我们只用插入13就好了),用链表维护就好了 考虑剩下的某个数x,不难发现它能放在的地方必须 阅读全文
posted @ 2024-07-31 19:15 最爱丁珰 阅读(11) 评论(0) 推荐(0) 编辑
摘要:看到这种类似的括号匹配的题目,一定要想到卡特兰数的证明过程呀(将(看成1,)看成1,于是不难得出充分条件,虽然这道题目并不是直接这么给的,但是我看没人证明) 剩下的看官方题解就好了,之所以可以删掉官方题解所说的x,是因为接下来如果xr1的答案候选项的话, 阅读全文
posted @ 2024-07-31 18:50 最爱丁珰 阅读(7) 评论(0) 推荐(0) 编辑
摘要:若存在这么一条直线l,那么找到这个公共交点,过这个公共交点作与l垂直的直线l1,那么l1与所有线段都相交;反之,如果存在一个直线l1与所有线段都相交,那么作一条直线ll1垂直,两者的交点肯定就是公共点 于是我们现在的任务变成了判断是否 阅读全文
posted @ 2024-07-31 10:16 最爱丁珰 阅读(34) 评论(0) 推荐(0) 编辑
摘要:看打卡代码就好了,主要是熟悉一下模板 阅读全文
posted @ 2024-07-31 09:30 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要:枚举(i,j),认为这是第j列唯一的1,于是就可以发现其他行是否变换就固定了,于是就可以暴力统计答案 考虑优化,对于一种变换方案,它所产生的只有一个1的列是固定的,而对于这些列,我们在枚举到他们的唯一的1的位置的时候,得到的变换方案也是固定的,所以变换方案与这 阅读全文
posted @ 2024-07-29 16:00 最爱丁珰 阅读(11) 评论(0) 推荐(0) 编辑
摘要:没啥思路看样例,不难发现一种特殊情况,即lcm(a1,a2,...,an)>ana已经经过排序了),那么答案显然就是n 否则的话,有所有数都是an的约数,于是任取若干个数出来,他们的LCM一定也是an的约数(公倍数一定是最小公倍数的约数),于是我 阅读全文
posted @ 2024-07-29 15:19 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:看这篇题解就好了 没办法总结出什么东西来,也做不出来。。。 阅读全文
posted @ 2024-07-29 15:04 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:我的赛时做法 对于或运算来说,就可以考虑两个1之间的东西(与运算就考虑两个0之间的东西) 另外这道题目也可以二分(我赛时想到了二分的,但是没有证明出来单调性所以不敢写,以后证明不出来,直接造数据写暴力就可以一眼丁真了) 证:假设k行,设\(a_1|a_2|...|a_{k}= 阅读全文
posted @ 2024-07-28 15:56 最爱丁珰 阅读(7) 评论(0) 推荐(0) 编辑
摘要:看这篇题解 中间那个不等式记住吧,虽然我也不知道有什么用 注意对一个固定的l来说,r增大,f是会严格增大的 阅读全文
posted @ 2024-07-28 15:46 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:看这篇题解 解释一下是为什么 看蓝书的图,比如a3c8的贡献,操作一次,贡献系数为1,然后将a8a3的贡献次数改为1,考虑一下操作第二次在干什么,我们是先更新了a3c4的贡献,然后让c8c4和\( 阅读全文
posted @ 2024-07-27 21:01 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要:像这种光标最多加一的,都可以用对顶堆/对顶栈去做 update 2025.1.9 注意,如果要写树结构的话,是要写平衡树的,不是手写堆,手写堆实现不了题目要求的功能 阅读全文
posted @ 2024-07-27 16:59 最爱丁珰 阅读(9) 评论(0) 推荐(0) 编辑
摘要:前面都是比较经典的套路 设d=gcd(a,b),则a=dk1,b=dk2gcd(k1,k2)=1,于是题目条件转化为dk1+dk2|d2k2,即k1+k2|dk2,设k3(k1+k2)=dk2,则\((d-k_3)k_2 阅读全文
posted @ 2024-07-27 14:11 最爱丁珰 阅读(10) 评论(0) 推荐(0) 编辑
摘要:考察每一步操作会改变什么 如果当前朝上的硬币的邻居为一上一下,那么朝上硬币总数会少一 如果当前朝上的硬币的邻居为两上,那么朝上硬币总数会少三 如果当前朝上的硬币的邻居为两下,那么朝上硬币总数会多一 不难发现每次操作都会改变朝上硬币总数的奇偶性,而如果这个数量为奇那么一定可以操作,如果为偶那么要么可以 阅读全文
posted @ 2024-07-27 13:58 最爱丁珰 阅读(7) 评论(0) 推荐(0) 编辑
摘要:这道题目跟Neo-Robin Hood很像,所以思路也差不多 具体见官方题解就好了 阅读全文
posted @ 2024-07-26 16:34 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:看这篇题解 我是想到了第一个策略的,但是没有想到接下来的转化 讲一下线段树那么是为什么:对任意i[pre,r],用一个数组a[i]表示[i,r]中出现次数为1的数的个数,用线段树维护这个数组,由于我们只新加进来一个数,所以新检查的区间的结尾一定都是r,于是可 阅读全文
posted @ 2024-07-26 16:30 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:看这篇题解 首先要回忆一下握手定理,所以奇数度点一定有偶数个;其次回忆一下树的必要条件,每个点的度数都大于一的话肯定不是树;然后再尝试构造,从特殊图,样例等等出发 阅读全文
posted @ 2024-07-26 13:55 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要:看这篇题解 我观察出来了前两条,但是第三条没有看出来,导致不知道MEX是固定的 阅读全文
posted @ 2024-07-26 12:42 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:这种题目还是比较脑洞了。。。 以一种情况为例,考虑petala1a,那么我们要最大化(a1)x+ay,我们先一直买a,最后不能买了(因为钱不够了),假设此时刚好可以买一个a1,那么答案就是m,否则的话我们尝试将一些a换成a1阅读全文
posted @ 2024-07-24 18:19 最爱丁珰 阅读(10) 评论(0) 推荐(0) 编辑
摘要:看官方题解的做法二 证明; 利用几何 假设当前在位置i,不妨设ai+1>ai,假设接下来数列长成这个样子: 可以发现无论怎么跳都会跳到aj,所以不如一步跳到 官方题解里面说的"stack"就是单调栈 阅读全文
posted @ 2024-07-24 15:39 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:首先观察,显然操作一是对于每个字母都问一遍,操作二,为什么是6000?不难发现25=32>26,于是认为是在字符集上二分 想到了HH的项链的思路,剩下见官方题解 阅读全文
posted @ 2024-07-24 14:41 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要:读题读题读题读题!明明读题好了就能做的。。。 注意是将ct[i]ct[j]减一,而不是将之间的所有数减一(就是这里读错了导致做不出来) 看起来很像差分,于是不难想到将c看做原数列b的前缀和的差分数组,就不难发现操作一不会改变前缀和的总和,而操作二会使总和加一,于 阅读全文
posted @ 2024-07-24 13:45 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:看这篇题解就好了 没做出来的原因是因为没有好好读d到底代表什么,没有将式子列出,二分还是挺明显的 阅读全文
posted @ 2024-07-23 12:20 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:采用正难则反的思想,假设已经给定了每一回合的赢家以及最开始的顺序,那么最终的赢家就是从根节点往下走,每次经过红边最终走到的节点 如果sponsors一次都不改变,那么路径显然是固定的,由题意,sponsors最多可以改变这条路径上的k次选择(向右儿子变成向左儿子,或者反过来);不难知道路径与 阅读全文
posted @ 2024-07-23 09:58 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要:第一次在考场中做出来的E题,rank也是来到了20,纪念一下,一定要相信自己呀 构造方法见官方题解,证明见下: 对于原始串s,如果第一个(从左往右数)相同交界不折,选择折后面的交界,那么根据决策包容性,我们可以折一下第一个相同交界,答案不会更差,如下 如果不折第一个交界: 对于最终方案我们折 阅读全文
posted @ 2024-07-22 16:44 最爱丁珰 阅读(8) 评论(0) 推荐(0) 编辑
摘要:这个看官方题解就好了,我做出来了,考试的时候好像是看样例盯出来的 阅读全文
posted @ 2024-07-22 16:23 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:看官方题解就好了 还记得这是什么方法吗?《离散数学》的“蚕食游戏”! update 2024.8.15 实际上将所有石子从小到大排序,然后做差分数组,就转化成了渐进NIM博弈。这样看来,蚕食游戏就是渐进NIM博弈的思路 怎么想到做差分数组的?先考虑n比较小的情况,自然就会往差分数组方面去想了 阅读全文
posted @ 2024-07-22 16:10 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要:寻找下界+构造的技巧别忘了啊,这道题如果想到了这个技巧还是很简单的 看这篇题解就好了 阅读全文
posted @ 2024-07-22 11:51 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:看这篇题解 这个方法就叫转变式子法吧 阅读全文
posted @ 2024-07-22 11:14 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要:遇到连续段的异或和,考虑前缀异或和 对区间[l,r],观察实施一次操作[L,R]后,区间会变成什么样。不难发现,[L,R]的异或前缀和会变成[sumR,sumL1,sumR,...,sumL1,sumR],于是可以知道,如果\(sum_R≠sum 阅读全文
posted @ 2024-07-22 10:38 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:洛谷的题解还没看,看看有没有什么可以吸收的 解释一下官方题解 200次询问是这么来的:对第一类情况,我们每次至少砍掉50个点,最多砍500050=100次,然后做第二类情况,我们问一次叶子,就要问一次根来判断目标是否还在这棵树里面;对于第三类情况感觉只用问\ 阅读全文
posted @ 2024-07-21 18:58 最爱丁珰 阅读(7) 评论(0) 推荐(0) 编辑
摘要:可以看看官方题解,说一下我的赛时做法 肯定操作二看起来都要优秀得多 不难发现,相邻两行不可能放两个及以上操作一,否则的话直接用两个操作二替代 利用数学归纳法考虑,对于第一行,我们要么用操作二,然后再去考虑之后的,要么用一个操作一(这要求第一行的黑色格子不超过2,而此时显然用操作一更好),再去 阅读全文
posted @ 2024-07-21 18:27 最爱丁珰 阅读(46) 评论(0) 推荐(0) 编辑
摘要:看到了y<x,于是肯定在[y,x]中构造一样的,由于两者都要最大,所以全部构造1,不难想到官方题解的做法 阅读全文
posted @ 2024-07-21 17:17 最爱丁珰 阅读(9) 评论(0) 推荐(0) 编辑
摘要:赛时做法: 考虑特殊元素,叶子,显然叶子要与其父亲合并,于是不难拓展出一个解法:对每一个节点,维护其度数以及包含的点的数量,队列里面放着当前图中度数为1的点,取出队首,将其与其父亲(也就是唯一与其相连的点)合并,如果合并之后包含点数大于3,那么无解,否则的话将其父亲的度数减一,如果此 阅读全文
posted @ 2024-07-21 17:07 最爱丁珰 阅读(6) 评论(0) 推荐(0) 编辑
摘要:这道题目本身很简单,我要说一下怎么一下子想到的,这个思想其实在很多交互题都可以用 我们第一次猜,一定不会删除物品,因为我们的程序删除的物品是固定的,在没有提供任何前提条件的情况下,我们很有可能直接将mimic删掉了,所以一定是不删除物品,所以输出0,于是不难发现解法 阅读全文
posted @ 2024-07-21 16:07 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要:做的时候就差如何得出一个点到两个不同的出口的最短路和次短路了啊 分类讨论 如果图不能到达出口,那么可以把所有'.'都填了 如果图只能达到一个出口,那么就是所有'.'的个数减去起点到这个出口的最短路 如果图可以到达两个及以上出口,考虑填满陷阱之后,图长成什么样子:此时一定刚好还剩下两个可到达的出口,所 阅读全文
posted @ 2024-07-21 14:08 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:说一下大致思路,见这篇题解 在往下传的过程中,会有动态边变成静态边,如 于是可以递归进行reduction和contraction 阅读全文
posted @ 2024-07-20 21:25 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要:这是CDQ分治优化1D/1D动态规划的模板题(1D/1D动态规划的概念见OI-wiki) 一般来说,优化的1D/1D/动态规划,在转移的时候是由不等式作为条件的,所以可以像这样转化为三维偏序 用线段树进行如下维护: 1.维护区间最大值 2.查询区间最大值的某一数组的和 代码见下(一定要学会将数组翻转 阅读全文
posted @ 2024-07-20 20:20 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要:还没有仔细看官方题解和洛谷题解,重新做的时候看一下有没有什么可以吸收的 说一下我的做法:首先看到第二个条件,不难想出ii只有可能选一个,此时观察样例,以及发现b刚好有n个数,所以不难想到最终b的构造方案是由1 ~ n的每一个数或其相反数组成 阅读全文
posted @ 2024-07-20 15:06 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:心路历程:对于bi,我们一定要有一次操作使得lj=i,lj+1=bi,于是连边(i,bi),不难发现形成基环树森林,再对着样例模拟一下,不难发现官方题解的结论 阅读全文
posted @ 2024-07-20 12:37 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:这道题目就用的是“利用数学归纳法构造”的方法 具体看官方题解就好了,我做这道题目的时候主要是看的样例,然后显然可以尝试添加两个0在末尾,但是还剩下两个数,然而此时我们数位多重集已经定了,所以依次尝试10069,10609,10690,16009,16090,会发现\(10609=10 阅读全文
posted @ 2024-07-20 10:22 最爱丁珰 阅读(7) 评论(0) 推荐(0) 编辑
摘要:首先利用前缀异或和进行转化,有szsx1ay>szsx1 发现ay比较特殊,于是枚举y,接下来考虑当ay定了之后的答案是什么 介绍一个小知识点:若ab>a(b>0),设b的最高位为i,则充要条件为a的第 阅读全文
posted @ 2024-07-19 22:59 最爱丁珰 阅读(7) 评论(0) 推荐(0) 编辑
摘要:这个看官方题解就好了,我赛时做法也是官方题解 只是讲一下官方题解说只关注"free rows"的原因:注意可放的位置一定都是对称的,所以某一行没有车,则对应列一定没有车,某一列没有车,对应行一定没有车,所以可以DP计数 阅读全文
posted @ 2024-07-19 22:45 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:由圆排列的公式,不难有C(n,k)=(kn)×k!k 于是答案为i=1nj=1i((ji)(j1)!)mod j 显然交换求和次序,有\(\sum_{i=1}^{n}\sum_{j 阅读全文
posted @ 2024-07-19 22:12 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要:看看官方题解,来用“exchanging argument”证明一下 假设不选最小的满足条件的v,选了个更大的v1,那么对于最终的序列如果没有ai+iv,那么显然将v1换成v更好,否则的话考虑aj+jvj=ai+iv(i<j),那么如 阅读全文
posted @ 2024-07-19 15:56 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:看官方题解就好了 思路就是找特殊元素,先找出答案上界,然后n1肯定是特殊元素,然后注意到另一个数是最小的就可以了(因为除了必须位是1,其余都是0) update 2024.8.17 而且观察询问次数,是3n,由于n为一万,所以提示我们线性询问而不是\(\lo 阅读全文
posted @ 2024-07-19 14:27 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:这道题目采用模拟法 官方题解的思路 所以题目如果只让交换一次的话,只能用这个 我的思路大体与官方题解一样,但是我并没有观察到pl>x的情况l是不变的,此时我采用的操作是先交换plx,然后重新跑一遍二分,再交换新的plx,用两次操作,易知答案O 阅读全文
posted @ 2024-07-19 13:06 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:好题,做的时候想到了对于一个询问,最多只会经历O(logn)次修改,在看了hint3之后也想到了转换考虑对象,即明白每一步操作只会在端点处发生变化 但是想到上面是不足以做这道题目的,来解释一下官方做法 官方做法最重要的想法就是先处理[1,n],然后记录下每一层剩余的数组。这个其实也是 阅读全文
posted @ 2024-07-19 11:05 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:点对统计,想点分治 设f[i][0/1]表示从根到i/从i到根,起点所需要的最小油量(起点加油终点不加油),g[i][0/1]表示对应情况按照最小油量出发,最后剩下的油量 剩下的就比较简单了,具体见代码 当然也可以看看这篇题解,这个转换也是比较显然的 阅读全文
posted @ 2024-07-18 21:36 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:将最少需要多少代价想出来了,但是没有想出像这篇题解一样的构造 我的构造是考虑1所在的连通块,设i是第一个没有在这个连通块中的数(1 ~ i1都在),那么就连接这两个连通块;如果中途连接的过程中不会出现某个iv那么答案显然是下界,否则的话我们可以知道 阅读全文
posted @ 2024-07-18 19:06 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题解都说了,当统计u为根节点的时候,答案就是满足以下条件的i的数量:digidfai<gfai,设这个数量为ans。以下严格证明 首先对于满足这个条件的i,其子树的叶子节点显然最多只有一个有农夫(否则就放多了) 我们考虑任意一个 阅读全文
posted @ 2024-07-17 23:01 最爱丁珰 阅读(6) 评论(0) 推荐(0) 编辑
摘要:这道题目卡常卡了两个半小时仍然没有卡过。。。等进队了让队友帮忙卡一下吧 主要想一下思路 最主要的就是在计算路径长度的时候,假设当前递归到了点i,那么从点i出发的两条路径合并在一起,如果第一条边的颜色相同的话就会重复计算,为了解决这个问题,我们只用对每个点进行排序,将相同颜色的点放在一 阅读全文
posted @ 2024-07-17 21:08 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要:赛时用的点分治,好像还可以用虚树,熟悉虚树之后回来做这道题目 但是有个与dfs相关的遍历算法,见这篇文章 这个a表示的就是对于当前遍历到的节点x,其子节点有多少个满足题目所求的路径(而且在回溯的时候更新答案),b表示的就是对于当前遍历到的节点x,已经遍历过的节点有多少 阅读全文
posted @ 2024-07-17 17:48 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要:这个看官方题解就好了,解释一下官方题解 首先一个很大的前提(也比较显然),就是为了达到最优的情况,我们只会让一个史莱姆一直吃,而不会让两个史莱姆都吃,最后再让其中一个史莱姆将另一个史莱姆吃掉 这一个区间指的是,只有这个区间的史莱姆进行互相吃,相当于忽略了区间外的史莱姆 剩下的都挺清楚了 阅读全文
posted @ 2024-07-17 17:22 最爱丁珰 阅读(8) 评论(0) 推荐(0) 编辑
摘要:显然当lr定了之后,元素顺序不影响答案,所以我们先将[l,r]排序来考虑 从最特殊的元素开始考虑,大于0的第一个元素是1,所以考虑1,然后就可以发现官方题解的做法了 阅读全文
posted @ 2024-07-17 17:11 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:官方题解的证明很严谨,可以看一下 也可以从上下界的角度考虑,每两段1中间的0的总和显然是下界(我们每次操作最多只能让这种0减少一个,而最终的序列要求没有0);考虑构造下界方案,每次对最后一个1进行操作即可 阅读全文
posted @ 2024-07-17 16:59 最爱丁珰 阅读(8) 评论(0) 推荐(0) 编辑
摘要:看官方解答吧,挺清楚的 我想到了表示1 ~ k1k+1 ~ n的,也想到了像多重背包二进制拆分一样拆分,也想到了添加k+1,但是没有想到添加k+1+2i,这就导致没办法凑完 添加k+1是在表示k+1 ~ n中且第i 阅读全文
posted @ 2024-07-17 13:49 最爱丁珰 阅读(8) 评论(0) 推荐(0) 编辑
摘要:想到了上界的,但确实构造不来 构造方法就看官方题解就好了,我们单个单个考虑就很困难,所以直接分成两组,一组的最小值大于另一组的最大值就好了 update 2024.8.17 由于n是偶数且我们考虑了上界了,我们可以知道上界是n21,显然对于一种构造方案,来形成lo 阅读全文
posted @ 2024-07-17 12:52 最爱丁珰 阅读(8) 评论(0) 推荐(0) 编辑
摘要:可以纯模拟,但是也可以用hash,而且细节更少,容易写对 见这篇文章 阅读全文
posted @ 2024-07-17 10:54 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要:首先这道题目的点对是有序的,所以路径总数是n2而不是Cn2 看到树上路径静态统计,想到点分治 不难想到按照路径长度模3的长度存储,具体见代码 阅读全文
posted @ 2024-07-15 19:55 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要:这个看官方题解就好了,很清晰 找LCA我用的方法就是一步一步跳,复杂度为O(logV) 看到了诸如a2或者2a,2a+1这种就可以想线段树的编号方法 最后证明一下为什么奇偶性不同就一定无解 我们将起点和终点写成下面的形式 从起点走 阅读全文
posted @ 2024-07-15 17:25 最爱丁珰 阅读(6) 评论(0) 推荐(0) 编辑
摘要:看官方题解就好了 将非邻项交换变成邻项交换也是常用技巧,复习一下 遇到邻项交换了想逆序对也要记住 最后的构造方法也可以这样:先将逆序对数较少的变成顺序序列,然后此时由于奇偶性相同,另一个序列的逆序对一定是偶数,于是显然可以将两个序列变成一样的 阅读全文
posted @ 2024-07-15 16:29 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:看这篇题解即可 所以以后遇到点覆盖也可以想2-SAT 阅读全文
posted @ 2024-07-15 13:18 最爱丁珰 阅读(11) 评论(0) 推荐(0) 编辑
摘要:类似分形图(主要是想一下代码怎么写) Ans && Conclusion 分形图的代码大概都这么写 update 2024.8.13 需要打表构造最小单元的分形图,见这篇题解 阅读全文
posted @ 2024-07-14 21:45 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:先考虑如何处理单个询问,看到了最大值最小,不难想到二分 普通二分怎么做呢?设当前二分值为mid,就不用考虑美味度小于mid的果汁了,于是就变成了一个简单的贪心问题,只需要将果汁按照价格排序,然后依次选择(注意选择的果汁不能超过li),最后选取了Lj升之后,查看总价 阅读全文
posted @ 2024-07-14 18:47 最爱丁珰 阅读(7) 评论(0) 推荐(0) 编辑
摘要:这个用二维树状数组解决就好啦,其他的都一样 阅读全文
posted @ 2024-07-14 13:45 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:直接看提交的代码就好了 由于L,R已经包含了操作序列,st,ed就不用再包含操作序列了,只用包含查询序列就好了 阅读全文
posted @ 2024-07-14 13:25 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:这道题目看官方题解吧,最后那个式子是在找逆元 不知道总结什么。。。 阅读全文
posted @ 2024-07-14 12:07 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:这道题目看官方题解就好了,写得挺清楚的 做这道题目的时候,由于是字典序最小,所以一直尝试将最小的尽量往前面放,但是这样却做不出来,所以这道题目告诉我们,字典序最小也可以尝试将最大的尽量往后面放 证明一下官方题解的构造过程: 利用贪心的决策包容性。 假设后面的数都是最优放置了,对于当前位置如果不放\( 阅读全文
posted @ 2024-07-14 10:54 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:这道题目看官方解答就好了,写的很清楚 我做的时候一直想的是如果找出0,但发现根本找不出,所以这道题目用了一个新思想:正难则反。我们考虑排除一定不是0的数即可 阅读全文
posted @ 2024-07-14 09:27 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要:如果这道题目知道了倍增优化建边,还是比较简单的 所以复习一下倍增优化建边吧 update 2024.8.18 构造题,转换为图论之后考虑特殊元素,不难发现用拓扑排序。由于有大量的边,于是想到倍增优化建边 阅读全文
posted @ 2024-07-13 19:00 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要:明明想到了的,却没敢往下面想。。。 利用找出上界+构造上界的方法 然后就可以看题解了 关键性质都想到了啊,却没敢往下面想。。。 阅读全文
posted @ 2024-07-13 18:30 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:这道题目就看官方解答吧 本来这道题目是构造题,但是题目要求计数,计数肯定就很多了,所以我们不能像传统构造题一样,去想如何特殊地构造出一个序列来,这里就要去想满足条件的序列有什么共性,所以我们就假设已经找到了序列c,然后去想想Koxia怎么必胜 于是不难发现引理一(这个可以感性理解一下,如果给 阅读全文
posted @ 2024-07-13 18:07 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:这个比较简单,随便找一篇题解看就好了 证明一下按照可操作位置数量排序之后为什么一定有解: 由于题目说了一定有解,所以对于任意一种操作方案(为了简便,操作方案只包含修改操作不包含复制操作),先操作的的可操作位置数量一定比后操作的可操作位置数量多,所以证毕 阅读全文
posted @ 2024-07-13 13:23 最爱丁珰 阅读(17) 评论(0) 推荐(0) 编辑
摘要:这道题目看官方题解就好了,这个转换图论挺显然的 证明一下为什么最后一定是 显然练完贬值后图只能长成这个样子 在消掉长度为2的环后,如果说图没边了, 那么显然就不用交换了,否则的话我们任取一条边 那么对于2号点来说,要么没出边,要么出边的终点是3号点(因为没有长度为2阅读全文
posted @ 2024-07-12 20:23 最爱丁珰 阅读(6) 评论(0) 推荐(0) 编辑
摘要:大致思路看这篇题解 讲一下这个等价怎么来的,有apqi=i,设aj=i,则apqi=aj;由于排列中数不重复,可以得出pqi=j,所以现在就是要找到一组q的排列(q定了p也就定了,所以只用考虑q阅读全文
posted @ 2024-07-12 20:04 最爱丁珰 阅读(7) 评论(0) 推荐(1) 编辑
摘要:看这篇题解 来证明一下 假设从l喝到r,那么肯定至少喝了x瓶白酒,如果大于x瓶白酒,我们将右端点减少,而当右端点减少到l+n1时,由于我们选择的l,r是让x最大的,所以此时白酒数量一定小于等于x,于是由介值定理可得 这 阅读全文
posted @ 2024-07-12 19:26 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:分类讨论题目尽量减少分类讨论的情况 显然图像有周期,像这种有周期的,尝试平移到一个区域里面进行计算 这里我们将图像平移到第一象限,然后利用容斥原理计算即可,这里分类讨论的情况就要少很多了 阅读全文
posted @ 2024-07-12 10:12 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:我们先将数字配对:对于1~n中的数i,如果ixn,则iix配对(显然这是来两两配对的),特别地,如果xn,则x单独为一组 设Bx的最高位,M1~n中第B位为1的数字的 阅读全文
posted @ 2024-07-11 20:35 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要:像这种自己主动构造图的,尝试构造特殊图 如:链,树,菊花图等等 这里构造链,做法即官方题解,写的很清楚 阅读全文
posted @ 2024-07-11 19:29 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要:主要是复习二分+哈希的思想,考虑贡献的思想也比较自然,题目也不是很难 然后想一下怎么 用差分维护一次项系数和常数项系数,具体下面的代码 #include<bits/stdc++.h> #define ll long long #define ULL unsigned long long using 阅读全文
posted @ 2024-07-11 13:59 最爱丁珰 阅读(1) 评论(0) 推荐(0) 编辑
摘要:可以就看官方解答,写的比较清楚 这个引理好像比较重要,可以记住,看看洛谷题解的思路 说下官方解答最后一段的意思:这么做就可以保证不会因为添加a,b,c三个字母中的某一个字母而产生回文串,比如添加a,添加的地方前面是c(或"a symbol that wasn't used") 阅读全文
posted @ 2024-07-10 21:08 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:看这篇题解 只能说以后看到hard version的先将easy version的做一遍,剩下的想法也比较自然了 update 2024.9.6 重新做一遍,做出来了,按照模拟加分类讨论做的。从a1开始,若一直不降到ak,然后有ak+1<ak,就考虑怎么样把\(a 阅读全文
posted @ 2024-07-10 19:17 最爱丁珰 阅读(9) 评论(0) 推荐(0) 编辑
摘要:这里使用观察法得出做这道题目的做法 注意到数据范围k<n<k2,而询问的次数不能超过100,所以很明显的提示我们询问的次数在nk的左右 于是可以得出做法,具体见代码,非常easy,可以尝试证明一下,注意别忘了n,k都是偶数 阅读全文
posted @ 2024-07-09 20:58 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要:这个就看官方题解就好了,写的很清楚 考试的时候把easy version给做出来了,但是对于hard version确实没有想到可以转换成位运算 所以以后看到2x,不妨想一下是不是位运算,这里将最后的式子一列就知道是位运算了 阅读全文
posted @ 2024-07-09 20:08 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:先来讲一下我的做法 在考虑特殊元素无果之后,我们尝试模拟法,即模拟什么时候从放一个序列的元素变成放另一个序列的元素 由于对称性,我们不妨假设最开始放的A 那么就有A[1]<B[1],假设指针一直到i,则A[i]>B[1],然后A[1~i1]都被放入了 阅读全文
posted @ 2024-07-09 19:06 最爱丁珰 阅读(7) 评论(0) 推荐(0) 编辑
摘要:这道题目与“分形之城”这道题目很像 我的赛时代码是用数组记录的,实际上洛谷第一篇题解的代码,更完美的利用了分而治之的思想(子问题是相同的) 阅读全文
posted @ 2024-07-09 12:05 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑
摘要:有利用数学归纳法思想的扩展法,就有反过来的删除法,这里利用删除法 考虑对于一颗合法的树,显然删除某两个叶子,会让其共同父亲变成叶子,这就形成了一个递归的过程;而某两个叶子在序列a中也一定是相邻的,而且很容易发现特征,就是其a的大小相差1 但是现在的问题就是我们不知道删除哪两个 阅读全文
posted @ 2024-07-08 22:57 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:复习虚点就好了,可以看这篇题解 另一种处理方式是认为每条边的长度都是1,求出最短路之后将求出的最短路除以2就好了 update 2024.8.16 其实这个建虚点还是边转点的操作,可以记住一下 边转点不一定非要点转边,就像这里一样,将原图的点作为过渡也行 阅读全文
posted @ 2024-07-08 21:21 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要:首先一个很显然的地方就是使用传送门肯定是在叶子节点使用,我们来考虑一下整个过程是怎么样的 为了方便,我们不妨假设可以传送回根节点k+1次,然后要求最后回到根节点 我们先从根节点走到某一个叶子结点,然后再从这个叶子节点走到另一个叶子节点,然后继续走到另一个叶子节点,一直这么下去,最后从某一个叶 阅读全文
posted @ 2024-07-08 18:25 最爱丁珰 阅读(9) 评论(0) 推荐(0) 编辑
摘要:可以看这篇题解 最开始的条件化简应该挺简单的,需要吸收的就是单独考虑a,b的极长合法子串(没做出来就是因为一直拘泥于二维的正方形,没有想到这个正方形可以映射到x轴和y轴的交线) 以题目给的样例为例,a的极长合法子串的长度为1,3b的为2,2 阅读全文
posted @ 2024-07-07 21:16 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:这道题目看到样例以及s=60的数据,可能会往将k拆成二进制的方向去想,然而事实却证明,一点关系也没有 官方题解的数学推导看看乐子就好了,但是对p1从大于1的数开始讨论还是比较重要的,看这个评论 upte 2024.8.25 这个评论告诉我们的启示还是非常重要的。重新 阅读全文
posted @ 2024-07-07 20:00 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:这道题目的官方题解写的挺清楚的 给的样例二和样例三是提示;然后这种字符串的形式AbAbAb..AbA记住吧 update 2024.8.25 官方题解的方法谁想得到呢?建议看这篇题解,涉及的技巧也都见过,相同且相邻的元素分块,利用已知构造未知 阅读全文
posted @ 2024-07-07 19:27 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:这道题目不用写,因为必须要求用kotlin语言 讲一下我做这道题目的过程 我最开始正着想,如果k比较大的话,我们就想一次删的数少一点,所以考虑一次操作有哪些数被保留,于是我们发现,原序列的极大值点会被保留,于是一次操作被保留的数最多的情况就是如下的波浪形: 然后我们就发现正着想很难构造了,于 阅读全文
posted @ 2024-07-07 17:59 最爱丁珰 阅读(3) 评论(0) 推荐(0) 编辑
摘要:官解的方法二就是这篇博客(注意要先将a从小到大排序),补充一下,博客中说当ajj+1<0时,我们就找第jaj列的那个房子即可 我在做的时候,也想到了逐个构造的方法,然而我在构造新的一列时,却总是想让这一列的房子与前一列的房子来配对,事实证明,我们构造的时候不要拘泥于数 阅读全文
posted @ 2024-07-07 14:38 最爱丁珰 阅读(8) 评论(0) 推荐(0) 编辑
摘要:也不知道怎么想到的,反正放在对角线是没有什么问题的 就往特殊的想吧 当时的心路历程是这样的:肯定要利用ai为偶数嘛,于是就想偶数是怎么走出来的,可以知道如果路线走成L形且L的两条直线长度相等(或者其旋转)那么就是偶数,于是就可以想到放在对角线上 阅读全文
posted @ 2024-07-07 13:43 最爱丁珰 阅读(5) 评论(0) 推荐(0) 编辑
摘要:这里主要想一下怎么简化讨论 由于在同一块长方形中,横着走不用花费,于是我们可以统一地将S,T所表示的正方形,都变成其所在的长方形的左边一个正方形,这样发就好表示了,也就是这篇题解 阅读全文
posted @ 2024-07-07 10:11 最爱丁珰 阅读(4) 评论(0) 推荐(0) 编辑
摘要:我只能说,打表也是构造的一种 update 2024.8.19 打表的话肯定不是把所有可能的字符串(最多有290种)全部写出然后循环枚举,而是应该直接随机生成n个字符串,然后判断 提醒一下,如果用map判重,template不要写<char *,bool>,好像是char *只 阅读全文
posted @ 2024-07-06 21:27 最爱丁珰 阅读(17) 评论(0) 推荐(0) 编辑
摘要:这道题目感觉还可以这么做(没试,有空了试一下) 尝试利用数据结构优化 看转移方程: f[i]=minsumisumjM(f[j]+maxj+1ki(Ak))显然当i加一后,可以利用单调栈去找那些j的后面一项贡献max要改变,再利用线段树维护即可 u 阅读全文
posted @ 2024-07-05 12:42 最爱丁珰 阅读(2) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示