题目乱做笔记
CF1592F1
*2600,会也不会,看题解的。
发现了一个性质:操作二和操作三没甚卵用,然后依然不会。
考虑把矩阵修改变成单点修改,这样会好做
考虑把全白
然后,然后就想不下去了,开了题解。
题解的神仙思路:设
然后就好做了,发现对于一个
所以,一次操作
不难发现进行
然后就做完了,判一下是否进行了操作
CF1592F2
感觉有点阴间,先 skip。
CF1516E
*2500,考虑设
转移显然,
不难发现可以消耗步数,那么最多交换
时间复杂度
优化
优化
c
反演回来,得到
那么答案就是:
时间复杂度
CF1499E
*2400,傻逼题,直接 DP 即可。
CF1348E
*2400,一道很秒的题。
考虑答案上界:我不管莓的种类全都放进个篮子里,可以放
考虑答案下界:我分别把每种莓放进篮子里,不管同一颗树可以不管种类的限制,可以放
不难发现上下界最多只差
这个加的
如果第一种草莓可以通过同一颗树移走
CF1109D
*2400,傻逼数数题,这种难度的题是怎么放到
CF1307E
*2500,有点阴间的题。
显然的,每种颜色的奶牛最多只会出现两只,一只在左边,一只在右边。
显然的,每只奶牛若放在左边,必然有一个固定的睡觉位置。
我们考虑枚举这个固定的睡觉位置,设枚举的位置为
这个可以直接计数,只是分讨有点阴间。
CF1603C
随机开的一道 *2300,从晚上
结果查看题解,数论分块优化
首先考虑如何计算一段区间
设当前位置为
然后考虑
考虑如何计算
发现每个
AGC010C
发现是判断是否合法,不妨找出一些必要条件。
首先,特判
对于以
我们设往上连了
容易发现
这是一个一元二次方程,我们可以把它解出来,判一下
如果
在以
而且根节点
容易发现另外情况均有解。
P6217
简单题,把
分子的维护是简单的。
考虑离线询问,依次加点,加到第
分离每个只因子的贡献。
发现
AGC014D
发现先手胜利的充分必要条件是存在一个白点没有黑点与之相邻。
考虑一个三个点的树:
考虑一条链的情况,我如果将这条链链底的父亲染白,后手只能把链底染黑。如此这般,先手必胜。
盲猜正解就是模拟这个过程。我们遍历每个点,每次把叶子节点和它的父亲删掉。如果遍历完后这个点后这个点还没被删,那么这个点就以及被删成了叶子,判一下父亲是否被删,被删了就先手必胜,没被删就把它们两个都删掉,回溯回去。
结果过了。
AGC015D
当
否则
然后不会了,看题解。
官方题解做法:
易证原问题等价于任选两个数能组成的或值个数。
可以这么构造证明:如果一个数
如果
接下来只需要考虑
设
首先这些数的最大值一定大于等于
分两种情况。
如果这些数的第
如果存在一个数的第
不难发现我们构造不出来这两个数当且仅当这些数都相同,而若这些数都相同,不可能构造出
首先把上面一坨相同的位去掉,此时一定有
设
则我们把区间
我们此时的或可以分成三种:
我们先看第一种,显然的,此时可以表示出
然后看第二种,我们找出
接下来是第三种,不难发现只需要与
三个区间取并即可。
AGC015C
傻逼题,点数-边数即可。
ARC116E
首先二分答案。
然后考虑
如果
如果
特判根节点即可。
AGC024D
考虑枚举每个点/边作为根,那么最终一定是形如一颗满二叉树剪掉一些子树。
颜色数可以直接求出。
考虑叶子节点数怎么求:取所有层点度数的
P4208
所以我们可以先求出最小生成树,然后枚举每种权值的边,把除它之外权值的边均加入,求行列式即可。
算一下复杂度:等于给你一个序列
P3644
首先如果居民的办公室和家都在河的一旁,可以直接忽略。
这个
设
我们取中点
由此我们得出结论:若
而进一步转化这个结论,得出:若
所以我们按照
枚举前缀后缀的分界点,两边都用
AGC050C
首先盲猜合法条件是存在一个前缀使得
然后考虑设
需要容斥,直接来是
但是这个合法条件是假的。
事实上,设
而
ABC240G
首先把“恰好”改成至多,然后让
好像不太行,考虑直接计数。
把三维分开来考虑。
我们首先枚举第一维走了几步,这个方案数可以直接组合数求出。
然后接下来我们要
把它转化成切比雪夫距离,发现等价于
ARC027D
蚌不住了,直接暴力能过。
立方体とペンキ
洛谷上只有一个人通过的题,
不过好在想出来了。
考虑怎么样的块会使表面积
所以我们可以直接把这些块先除掉。
然后接下来我们会把原数组分成若干区间,这些区间是极大的相等子串。
设
我们可以用优先队列维护这些区间,然后每次取长度最小的,把区间
合并区间的时候需要一些分讨。
Equilateral
发现任意一个合法点对都存在两个点在
于是我们可以枚举这两个点,大约只有
然后考虑第三个点有几种可能,发现是一条
ARC047B
先曼哈顿距离转切比雪夫距离,然后我们发现以
然后对有几个边界上有点分类讨论,发现
于是枚举这
AGC052B
我们把边权转为点权,这样一次操作就是交换相连两个点的点权。
注意到此时我们的点权可以任意排列。
设
注意到任意一组合法方案都可以规约到
现在我们求出了
我们设
同样钦定
注意到当
也就是
然后代回去判断是否合法即可。
ABC193F
看到这个题就感觉非常
刚开始想到可以把每个点拆成黑点和白点两个状态,不过这样等于限制两条边只能流一条,是假的。
最大流不行,考虑最小割。
注意到经典模型:使两边颜色相同的边数最大
而如何套用到这题呢?把
ABC201F
首先可以让
然后我们可以把三种操作分成三个部分:先左移,后右移,最后任意移。
容易证明需要左移的点在值域上一定是一段前缀,右移的一定是一段后缀。
而中间留下一段值域连续的任意移动部分,等于求一个最长带权上升子序列(这些点不用移动,其余点需要任意移动)。
直接来是
我们考虑把前缀压到一个
CF1758E
首先考虑如何
我们可以规定操作顺序,显然对最终结果没有影响,所以不妨认为先操作行,再操作列。
那么合法条件就变成了能否操作一些行,使得每列的数都相等。
这个合法条件又等价于矩阵每行的差分数组(
显然,每列的差分数组也必须相等。
既然已经转化到这里,不妨把每列分开考虑,先不考虑第一列。
如果这一列存在一个固定的数,那么这一列也随之确定(列差分数组是确定的)。
如果这一列不存在固定的数,那么就对答案有
第一列的放置情况要根据行的情况确定。
根据行的差分数组推得每个位置可以任意放还是固定。
然后简单计数一下即可,注意判断无解。
差分数组可以简单用带权并查集维护。
CF1844E
其实与 CF1758E 非常类似。
观察 Great Grids 的性质,以 $$ 表示
那么两行的
这等价于每一行的元素相等情况完全相同。
每行分开来,然后并查集判断即可。
CF1824C
考虑最终方案是如何的。
不难发现会存在若干叶子节点在叶子节点上单点修改以满足条件。
另外一些点通过非叶子节点修改满足条件。
设
显然
那么首先
接下来我们可以选择一些子树是的它们的修改不变。
额外维护一个
这样就可以方便求出了。
CF1290C
发现题目中的条件等价于每个点只会被包含在至多两个集合里。
那么一个
一个
考虑使用扩展域并查集维护这个东西。
我们设“选”为第一层,“不选”为第二层。
那么一个连通块要么全选第一层的点,要么全选第二层的点。
所以维护两个
注意到每种连通块会被算两次,所以要
特判
CF1495D
先转化一下题目的条件。
我们对于每个
那么题目的条件就是每条边
我们给每条边定向,限制就变成
考虑一棵树怎么算答案。
枚举
那么对于两棵树呢?
观察一下,发现
-
的路径上满足 。 -
对于不在
路径上的边 满足 。
考虑分层之后
直接转移即可做到
这时候需要一个很厉害的观察:如果
有了这个性质之后我们就不需要
太妙了,时间复杂度
CF283E
考虑统计不合法三元组的数量。
不难发现不合法三元组等价于三元组内存在一个点的出度是
那么我们可以求出最终状态下每个点的出度,不妨设为
至于
P2416
题意就是给出一张无向图,有若干关键边,一条边走过后不能再走,
缩边双,不难发现一个边双内的边都能走过。
然后就做完了。
CF1677D
考虑没有
发现每个序列对应一个原序列。
至于交换
把原序列求出来之后可以求出最多能交换几轮。
然后打个表,发现长这样:
1 16 54 96 120
1 8 18 24
1 4 6
1 2
设最多能交换
「LibreOJ NOI Round #1」北校门外的回忆
考虑
把
当
所以每个点暴力跳
每条链可以开一颗线段树维护,接下来我们只需要定位出某个点在哪条链上以及是第几个就行了。
发现
于是我们可以倍增,然后就做完了。
Birthday
首先需要发现答案是
设
我们先将所有数转化成
是 的次幂,递归到 。 不是 的次幂,找到 的最大 的次幂 ,将 与 配对,那么会得到 与 ,前者已经合法,仅需递归到 解决后者即可,对于剩下的部分 递归下去即可。
这个方法的操作次数不太好证明,但至少是
现在所有数都是
- 如果存在两个数相等,并且它们都
,那么直接合并即可。 - 如果存在
,那么让某个数与 合并,转化成存在两个数相等的情况。 - 如果不存在
,取出两个数 与 ,不难发现可以用两次操作使它们变成 与 。
后面部分同样是
本文作者:Tx_Lcy
本文链接:https://www.cnblogs.com/tx-lcy/p/17151848.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步