自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dingxingdi的博客

随意看看就好

  • 博客(796)
  • 收藏
  • 关注

原创 好题杂题列表

存疑:为什么这种查找(本人代码中的search函数)复杂度是正确的?upd:复杂度就是错的,看本人最新代码的search的写法。#记得重分类,分的细一点,具体到算法(加入到luogu提单里面),这个里面可能有重题,记得去重。#OI做题总结也是,重分类,分的细一点。再次复习0/1trie。

2024-07-16 10:19:11 412

原创 OI做题总结

数学竞赛蓝书上与OI/ICPC有关内容也可阅读OI考前注意事项见川外团队骗分导论见腾讯微云。

2024-07-16 10:17:07 767

原创 NOIP复习提纲(持续更新)

1.LCA

2018-10-17 14:01:28 418

原创 Madoka and The Corruption Scheme

次选择(向右儿子变成向左儿子,或者反过来);不难知道路径与叶子节点一一对应,所以不同的改变会走到不同的叶子节点,假设已经给定了每一回合的赢家(没有给出最开始的顺序),那么由于改变最多可以走到官方题解说的那个式子。采用正难则反的思想,假设已经给定了每一回合的赢家以及最开始的顺序,那么最终的赢家就是从根节点往下走,每次经过红边最终走到的节点。如果sponsors一次都不改变,那么路径显然是固定的,由题意,sponsors最多可以改变这条路径上的。这么多个叶子节点,显然我们要将这。

2024-07-23 09:58:33 21

原创 XOR Construction

如果相同的话,这个时候变不变是没有影响的,因为就相当于原来的某两个数交换了一下位置(比如原来第。,然后我们现在把从右往左第二位取反,那么取反之后就是第。那么如果我们最开始求出来的这组数在某一位上的。观察两组数的不同,发现在每一位上有可能。确定的时候,我们如何查询最大值?当然,也有另一种思路,就是按位考虑。一样的,我们通过模拟位,可以知道。我们来看看样例输出给的每个二进制。的每一位的异同,所以我们确定了。我们又想到,题目最终要求的是。的个数不同,那么我们直接将。,然后跑样例,跑出来的。,然而我们却不能确定。

2024-07-23 07:49:53 227

原创 午餐111

这里重新做这道题目的时候,发现思路被陪审团给限制了,设置DP状态的时候一直在用维度表示一支队伍的状态,DP值表示另一只队伍的状态;这道题目给我们的启示就是,我们也可以同时用维度表示两只队伍的状态,DP值也同时表示两支队伍的状态。然而,像陪审团这道题目,可不可以用一维来表示两支队伍的时间差值呢?受到国王游戏的启发,我们可以考虑当一个队伍的人定了之后,如何排序会最优。于是再利用DP考虑每一个人是在第一支队伍还是第二支队伍。利用国王游戏的方法会发现是按照。所以上面这个不等式等价于。

2024-07-22 23:51:34 357

原创 Cow coupons

在最终方案中一定都会买(即不后悔奶牛是否买),并且对于已经买了的奶牛,优惠券的分配是最优的,那么如果我们想要多买一头奶牛,下面只分析。我们认为已经买了的奶牛是一定不会不买的,我们只需要考虑优惠券的转移;现在我们想要多买一头奶牛,如果我们用原价买这头奶牛,就选择。的堆顶,如果我们要用优惠券买这个奶牛,那么优惠券就要发生转移,于是考虑。头奶牛没有在最终方案中,而最终方案中一定有一头用了优惠券的奶牛。的奶牛,如果都是以原价买的,那么显然随便舍弃一头奶牛买。的堆顶,并将新的用了优惠券的奶牛的原价减优惠价加入。

2024-07-22 22:29:08 695

原创 超市111

注意由于这是反悔贪心,所以别从全局的决策包容性的角度考虑,因为之前做出的选择可能根本不是全局最优解;天的(注意按照天数从小到大排序了,所以也可以认为这个方案中过期天数越大的放在越后面),我们拿掉第。个物品)(注意虽然堆是按照价值排序的,但是下面的分析也是认为按照过期天数升序排序),我们先将堆中。个物品依次往后移动一天,直到某一个物品不能往后移动(不然就过期了),设这个物品是前。物品替代的那一个物品就变成了上面分析中所说的“堆”的物品,也即前面。注意由于方案中的物品按照了过期天数排序的,所以说方案中。

2024-07-22 22:13:26 243

原创 Folding Strip

如果第一个(从左往右数)相同交界不折,选择折后面的交界,那么根据决策包容性,我们可以折一下第一个相同交界,答案不会更差,如下。第一次在考场中做出来的E题,rank也是来到了20,纪念一下,一定要相信自己呀。所得到的就相当于最开始对称一下,即从右往左看,然后折一下第一个交界。

2024-07-22 16:45:37 190

原创 Rectangle Filling

这个看官方题解就好了,我做出来了,考试的时候好像是看样例盯出来的。

2024-07-22 16:23:29 125

原创 Everything Nim

还记得这是什么方法吗?《离散数学》的“蚕食游戏”!

2024-07-22 16:09:42 217

原创 Edge Split

寻找下界+构造的技巧别忘了啊,这道题如果想到了这个技巧还是很简单的。

2024-07-22 11:52:24 54

原创 Rectangular Congruence

这个方法就叫转变式子法吧。

2024-07-22 11:14:35 70

原创 Yet Another Problem

此时操作两次就可以了,其余情况无解(证:此时可以用数学归纳法证明,无论怎么改变,是奇,那么奇数位指下标为奇数,否则指下标为偶数),使得。,如果为偶数,我们尝试转换为前面一种情况,于是如果。,否则的话,此时我们看样例,就会发现,如果我们在。的长度为奇数,操作一次整个区间就可以了,答案为。,而最终序列的所有异或前缀和一定都为。遇到连续段的异或和,考虑前缀异或和。,那么就可以像前面一样操作,答案为。后,区间会变成什么样。(注意这里的奇数位是相对于。中的奇数位都不可能等于。,于是可以知道,如果。

2024-07-22 10:38:49 387

原创 Freedom of Choice

心路历程:最开始肯定考虑每个多重集选哪些数,但是发现做不了,于是考虑转换对象,直接枚举答案,对每一个答案不难想到题解的贪心。但是他的维护我不是很看得懂,有时间了看一下,重新做的时候我是用递推维护的。重新做一遍的时候做出来了。虽然我的代码比较丑。

2024-07-22 08:40:32 137

原创 Anonymous Informant

如果建图的话,会发现这是一个基环树+树的森林集合,也可以很容易做出来。虽然我是用倍增优化这个过程的,复杂度多了一个log。

2024-07-22 08:05:15 71

原创 Secret Sport

重新做这道题目一下子就看出来了最后一个人是赢家。由于题目给的序列是合法的,所以不可能输出。,直接输出最后一局的结果就好了。胜的体育比赛,每局比赛是。虽然我赛时的时候是纯模拟。

2024-07-22 07:42:27 248

原创 任务111

其实,对于最新考虑的任务,他之所以能被完成就一定被完成,是因为这样才保证第一个条件满足,然而他不被完成第一个条件一定不能够被满足吗?此时,我们用数学归纳法来证明一下:假设已经选择的任务是最优方案的一部分,对于最新考虑的任务,如果他能够被完成,那么是一定会被完成的,问题就在于他要选择哪一个机器完成,显然是选择。但这个时候就没有办法保证价值最大了,所以这道题启发我们,如果一道题目有多维的因素需要考量(这题目既要考虑任务个数又要考虑最终价值),对于多个对称的对象(比如这题的任务与机器,从大到小排序的,此时。

2024-07-22 07:20:52 636

原创 背单词11

那么洛谷最高赞题解对这个的证明是这样的:假设已经是标记完一整颗子树后再去标记另一颗子树,如果将在前面标记的子树的一个叶子节点放在后面标记的一颗子树的根的后面一位,那么这个叶子节点到其父亲的距离增加,而且这个根节点的孩子到这个根节点的距离增加,所以总距离增加,所以答案会变差。究其原因,是因为我们刚刚的证明只能说明对于最优的排序,一定不会存在相邻的非父子关系的两项,前一项的直接儿子数更多(不信验证一下,上述两个排列都满足这个性质)。假设我们已经合并了,然后考虑相邻的两个大节点,通过列式子发现,我们要尽量将。

2024-07-21 22:46:02 380

原创 给树染色1

这题的关键性质其实是,任意时刻,等效权值最大的点一定是会在其父节点里面的小节点依次染完后,立马把里面的小节点按照顺序染完(这个性质怎么发现的?我们发现不太好直接确定这个序列的染色方案,所以我们转换对象,考虑节点,从特殊的节点开始考虑,于是考虑权值最大的节点)前面,也就是说,对一个序列等效权值最大的点,如果其与其父节点中间有其他点,我们就可以说明这不是最优的序列,所以一个序列等效权值最大的点一定会在其父节点被染色之后立马被染色。注意如果某个时刻根节点是等效权值最大的点,我们寻找等效权值次大的点就好了。

2024-07-21 21:43:20 392

原创 皇后游戏1

排序,那么中间会存在一些乘积相等的数(就是这个序列被分成了若干个块,每个块之间的乘积严格递增,但是块内的乘积相等),那么最优答案不可能会在块之间进行交换,因为答案会变差(当然最优序列也必须满足以上条件,就是说如果想通过交换邻项去得到更优的情况,一定是在块内交换的),然而在块内交换,由于乘积都相等,每一次交换答案都不变,所以我们任意找一个满足条件的序列就可以了。我们考虑最终的⑤式,如果我们最终的序列满足⑤式,那么肯定是可以推导到①式上面的那一个式子的,那么对这个式子,我们给两个max里面都加上。

2024-07-21 21:05:40 690

原创 NOIP2015 推销员

的住户作为这个方案的最远的住户,我们直接考虑在这个情形下的最优状态是什么。,那么可以知道,一定不会存在一个更优的方案,使得这个方案的最远的距离比。插一句,这一道题目在做的时候,我从样例感觉出来了一个结论,就是。哎,想到了转换对象,将客户排序了,但是没有想到这么做啊。从部分题解来看,这个想法也是正确的,但是不知道怎么证明。假设我们选的疲劳值最大的前X个的最远的一个的距离为。大的住户,就是最开始的方案去掉疲劳值最小的住户。的决策,考虑多增加哪一个住户就可以了。所以更优的方案的最远的距离肯定要比。

2024-07-21 19:40:46 401

原创 Catch the Mole(Easy Version)

次,然后做第二类情况,我们问一次叶子,就要问一次根来判断目标是否还在这棵树里面;对于第三类情况感觉只用问。,最长链(这个链必须是指向根节点的,不能以某个点作为LCA拐点)就不超过。次询问是这么来的:对第一类情况,我们每次至少砍掉。洛谷的题解还没看,看看有没有什么可以吸收的。最后所说的二分查找优化也比较显然了。次吧,因为如果不存在满足等式的。

2024-07-21 18:59:59 282

原创 Grid Puzzle

而此时显然用操作一更好),再去考虑之后的;重复上面的过程,可以发现当我们考虑到某一行的时候,这一行的黑色格子有可能分成了两段,此时显然用一次操作二解决问题,如果只有一段但是这一段的黑色格子数量也大于。利用数学归纳法考虑,对于第一行,我们要么用操作二,然后再去考虑之后的,要么用一个操作一(这要求第一行的黑色格子不超过。,由上面的分析,我们希望将下面一行分的段数尽量少,于是将这个黑色格子作为操作一的左上角即可。不难发现,相邻两行不可能放两个及以上操作一,否则的话直接用两个操作二替代。

2024-07-21 18:27:38 187

原创 Array Craft

中构造一样的,由于两者都要最大,所以全部构造。,不难想到官方题解的做法。

2024-07-21 17:18:34 99

原创 Ksyusha and Chinchilla

考虑特殊元素,叶子,显然叶子要与其父亲合并,于是不难拓展出一个解法:对每一个节点,维护其度数以及包含的点的数量,队列里面放着当前图中度数为。,这个更新size就与我们通常跟新size的操作是一样的(但是我还是没办法证明这个方法的正确性,感觉本质上跟我的赛时做法是一样的)的点,取出队首,将其与其父亲(也就是唯一与其相连的点)合并,如果合并之后包含点数大于。,那么无解,否则的话将其父亲的度数减一,如果此时父亲包含的点数为。,那么扫描父亲的所有出边,将另一端点度数减一,并将度数变成。

2024-07-21 17:08:23 256

原创 Rudolph and Mimic

我们第一次猜,一定不会删除物品,因为我们的程序删除的物品是固定的,在没有提供任何前提条件的情况下,我们很有可能直接将mimic删掉了,所以一定是不删除物品,所以输出。这道题目本身很简单,我要说一下怎么一下子想到的,这个思想其实在很多交互题都可以用。

2024-07-21 16:07:04 80

原创 Vova Escapes the Matrix

如果这两条路分叉了之后又汇聚到一个点,显然是不优的(可以把分叉的路变成一条路,从而将另一条路填上陷阱),于是这两条路一定是先一起走,然后分叉一直到两个终点,于是我们可以得出算法,先枚举分叉点,算出起点到分叉点的距离,再算分叉点到两个不同的出口的最短路和次短路即可(如果分叉点到两个不同的出口的最短路和次短路仍然有重叠,无所谓,因为我们会枚举所有点,不会遗漏最优答案)最主要的就是如何得出一个点到两个不同的出口的最短路和次短路,此时要记录路径长度以及起点,具体见下面的代码。

2024-07-21 14:09:21 97

原创 Colorful Grid

的时候,我们无论怎么走,总要把多的这一步走掉(而且不是往右边或者下边走,而是往上边或者左边走,当然不能跟上一步重合),但是这样就还需要再多一步才能走到,即这种情况下至少需要。重新做的时候,我们用一种新的方法来进行证明(思路借鉴离散数学课中利用二进制编码证。绕圈圈,每绕一圈就会少四步,最终会转换成上面四种情况之一。表示坐标第一/第二分量加一的步数数量,的时候,像我们上面说的这么走就好了。的奇偶性一样,这就矛盾了,所以无解。的时候,显然是不可以的。的时候仍然是不可以的。的时候,我们一直绕着。

2024-07-21 09:37:30 766

原创 [HNOI2010] 城市建设

于是可以递归进行reduction和contraction。在往下传的过程中,会有动态边变成静态边,如。

2024-07-20 21:25:00 118

原创 [SDOI2011] 拦截导弹

一般来说,优化的1D/1D/动态规划,在转移的时候是由不等式作为条件的,所以可以像这样转化为三维偏序。这是CDQ分治优化1D/1D动态规划的模板题(1D/1D动态规划的概念见OI-wiki)代码见下(一定要学会将数组翻转的操作)2.查询区间最大值的某一数组的和。

2024-07-20 20:24:07 169

原创 Imbalanced Arrays

的每一个数或其相反数组成的,且每个数刚好有一个;如果对于某一种合法的情况,存在绝对值相等的数,那么由鸽巢原理,一定存在一个。还没有仔细看官方题解和洛谷题解,重新做的时候看一下有没有什么可以吸收的。的数),无论这个数有多个还是一个(注意如果这个数有多个,那么这个数对应。为已经填了的正数的个数,显然这两个不能相等(否则的话已经填了的数为。,显然这两个不能同时存在,也不可能都不存在,于是填。最近的数(有可能由两个,一个绝对值大于。,显然不可能),也不能都不存在,于是填。已经填了的负数的个数,如果选择。

2024-07-20 15:14:20 850

原创 Cyclic Operations

不难发现形成基环树森林,再对着样例模拟一下,不难发现官方题解的结论。,我们一定要有一次操作使得。

2024-07-20 12:37:55 159

原创 Mathematical Problem

具体看官方题解就好了,我做这道题目的时候主要是看的样例,然后显然可以尝试添加两个。在末尾,但是还剩下两个数,然而此时我们数位多重集已经定了,所以依次尝试。这道题目就用的是“利用数学归纳法构造”的方法。

2024-07-20 10:23:13 273

原创 Add, Divide and Floor

我们不妨将这个式子看做取中点,然后就会发现每次操作不改变相对大小,然后看这篇洛谷。解释一下他这个合理性,主要是害怕讨论每次操作后的。,那么根据这篇洛谷题解,而每次操作要么让。这里其实官方题解给出了一个提示。有关了,显然我们每次要让。

2024-07-20 09:33:44 909

原创 A BIT of an Inequality

首先利用前缀异或和进行转化,有。(这个分类讨论一下就好了)定了之后的答案是什么。介绍一个小知识点:若。

2024-07-19 22:58:39 670

原创 How Does the Rook Move?

这个看官方题解就好了,我赛时做法也是官方题解只是讲一下官方题解说只关注"free rows"的原因:注意可放的位置一定都是对称的,所以某一行没有车,则对应列一定没有车,某一列没有车,对应行一定没有车,所以可以DP计数...

2024-07-19 22:45:00 82

原创 Carousel of Combinations

之中,再由卢卡斯定理(这个一定要手写写出来才会发现很容易化简,比赛的时候就觉得可以用程序去算就没有化简,从而导致根本没办法往下面做,所以以后遇到公式了一定要手写写出来)可化简为。数组的贡献(枚举倍数利用差分),时间复杂度为。对特定局部的贡献,最后将所有局部汇总就好了。对整体的贡献,但是题解告诉我们也可以考虑。补题的时候一直想的是每个。具体来说,这里反过去考虑。由圆排列的公式,不难有。显然交换求和次序,有。

2024-07-19 22:12:57 716

原创 矩形加矩形求和

就会发现某个修改对答案的贡献就是这个修改的值乘以(这个询问的右端点减去这个修改的下标),即为这个修改的值乘以这个询问的右端点减去这个修改的值乘以这个修改的下标,所以我们用两次扫描,第一次将所有值乘以询问右端点,第二次将所有修改乘以询问的右端点就好了。重新做的时候,一眼二维差分,然后就要上二维树状数组,结果真的可以这么做,而且正解就是这么做。提一个细节,在树状数组的修改/查询操作中的循环里面一定要定义临时变量,比如修改,要写成。主要是记住这个问题静态版本的解答方法,然后没必要用线段树,用树状数组就好了。

2024-07-19 18:44:20 462

原创 Lexicographically Largest

看看官方题解,来用“exchanging argument”证明一下。,他这么构造肯定是上界,但是我没有找到一种构造方法。,再重复上述过程(i.e.考虑是否存在。,那么对于最终的序列如果没有。假设不选最小的满足条件的。

2024-07-19 15:56:23 340

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除