10 2023 档案

倍增优化DP
摘要:常用状态:某个点向后(链)/上(树)跳 2k 步的结果。 如果很容易用小的部分更新合成大的部分,而且复杂度在 log 左右,可以考虑。
17
0
0
aaa
摘要:https://class.51nod.com/Contest/Problem.html#contestProblemId=6392 看似数据结构,实则数学题。 而且题解做法和“原题”的做法没有啥关系。 先把式子换一种写法。 原式等于 \(\sum\limits_{l=1}^n \sum\limit
5
0
0
最优贸易
摘要:# [P1073 [NOIP2009 提高组] 最优贸易](https://www.luogu.com.cn/problem/P1073) 我们考虑一个中间点,求出从 1 出发到它的最小买入价,从它到 n 的最大卖出价。(从它到 n 的求解是在反向图中从 n 开始跑) 可以发现,这个
9
0
0
[HEOI2016TJOI2016]排序
摘要:P2824 [HEOI2016/TJOI2016] 排序 直接模拟复杂度爆炸,有观察到它只要求一个数。 思维十分清奇。 我们先考虑一个序列,如果全是 0/1,该怎么做。 发现这个问题很好做,修改区间时只需要先查询一的个数,然后将前面/后面全部置1,其他置0。 然后我们考虑怎么转化。 发现可以二分答案
8
0
0
区间方差
摘要:# [P5142 区间方差](https://www.luogu.com.cn/problem/P5142) 单点修改,区间查询。 更新很简单,直接赋值,然后更新(注意 y2 可能爆 `int`)。 对于询问,我们考虑完全平方公式 (aia)2=ai22aai+a2,我们发
14
0
0
日记和最短路
摘要:# [A 日记和最短路](https://class.51nod.com/Contest/Problem.html#contestProblemId=6276) ## 一句话题意 给定一个有权DAG(权值都是字符串),问从 1 走到 n,求在长度最小的情况下使得字典序最小和字典序最小。 $1
59
0
0
天天爱跑步
摘要:P1600 [NOIP2016 提高组] 天天爱跑步 我们首先考虑满足可以被观测到的条件。 为了方便,我们将一条路径分为两部分,一部分是往上的(包含LCA),另一部分是往下的(不包含LCA)。 对于第一部分,满足 dudx=wxdu=dx+wx,是固有属
8
0
0
运输计划
摘要:# [运输计划](https://www.luogu.com.cn/problem/P2680) 我们考虑先预处理出 LCA、每条路径的长度。 然后发现这个问题具有二段性,所以可以使用二分。 对于mid的路径,我们需要删除至少一条边,根据题目条件,所以当且仅当删除一条。 如何求解这些>mid的路径的
8
0
0
贪婪大陆
摘要:P2184 贪婪大陆 我们考虑记录每个位置作为左右端点的次数的信息。 直接在两个位置处+1. 查询区间相当于=左端点在 R 左侧(包含边界)的区间个数-右端点在 [1,L)。 单点修改,区间查询,树状数组即可。 #include<cstdio> #include<iostream>
9
0
0
无聊的数列
摘要:# [P1438 无聊的数列](https://www.luogu.com.cn/problem/P1438) 我们考虑原数列 a 的差分序列 b。 1. blbl+k,br+1br+1k,将区间 [l,r] 内的数增加
7
0
0
NOIPTG联合权值
摘要:# [P1351 [NOIP2014 提高组] 联合权值](https://www.luogu.com.cn/problem/P1351) 我们对于每个点计算它的子结点的 w,maxw。 如图,发现贡献有三类: 1. 直接计算。 2. 需要剔除自己这个点,对于 `sum` 直接减去
4
0
0
联合权值
摘要:# [P1351 [NOIP2014 提高组] 联合权值](https://www.luogu.com.cn/problem/P1351) 我们对于每个点计算它的子结点的 w,maxw。 如图,发现贡献有三类: 1. 直接计算。 2. 需要剔除自己这个点,对于 `sum` 直接减去
5
0
0
疫情控制
摘要:# [P1084 [NOIP2012 提高组] 疫情控制](https://www.luogu.com.cn/problem/P1084) 我们先考虑允许走到根的做法。 首先就是二分答案,然后每个军队尽可能往上跳跃,可以用倍增。(往下不优),最后检查是不是满足要求就行了。 不允许到根,所以可能有的军
15
0
0
树的重心
摘要:# [[CSP-S2019] 树的重心](https://www.luogu.com.cn/problem/P5666) 需要了解重心的很多性质: 1. 重心有 12 个,满足删除重心后形成的连通块最大大小 n2,若有 $2
23
0
0
树的重心
摘要:# [模板1:树的重心](https://wikioi.cn/problem/584) # [模板2:树的重心](https://www.acwing.com/problem/content/848/) 1求重心,2求重心删除后的最大连通块。 # 基本方法 对于每个点,我们计算一下它分离后的最大连通
20
0
0
函数调用
摘要:# [P7077 [CSP-S2020] 函数调用](https://www.luogu.com.cn/problem/P7077) 我们考虑如果没有第三种函数,如何解决这个问题。 发现,对于每个1(1类),我们考虑在它之后执行了多少个2,然后累乘,就是这个增加操作实际的贡献。我们只需要倒序,维护一
6
0
0
五行学说
摘要:# [五行学说](https://iai.sh.cn/problem/28) 带权并查集。 我们发现,克一次相当于生两次。 如图,火、土、金的部分。 发现,这样这个问题就同食物链问题很像了。 ```cpp #include #include using namespace std; const in
24
0
0
食物链
摘要:# [P2024 [NOI2001] 食物链](https://www.luogu.com.cn/problem/P2024) 带权并查集。 我们维护每个点到根的距离,为 0 表示同类,为 1 表示吃根,2 表示被根吃。 判断合法只需要将 du,dv 作差即可。 连接时可以 $f
8
0
0
斗地主
摘要:# [P2668 [NOIP2015 提高组] 斗地主](https://www.luogu.com.cn/problem/P2668) 我们发现,除了顺子以外,其他的出牌方式和大小无关,我们先爆搜所有的顺子,搜索完之后剩下的牌我们考虑不用顺子,用其他牌型。 此时我们关心的只有单牌、对子、三个、炸弹
4
0
0
半树问题
摘要:# [半树问题](http://topoi.top/problem/39057) 我们考虑每条边的贡献就是所有经过它的路径,恰好分成这条边的子树内的点、子树外的点两组,路径的端点一定是这两组点中各取一个点。乘起来再乘上边权,就是这条边的贡献。 于是问题被转换成了在树上选取最长的路径了,这就是树的直径
20
0
0
脑洞治疗仪
摘要:P4344 [SHOI2015] 脑洞治疗仪 翻译题目 0lr:区间置 01l0r0l1r1:将 [l0,r0] 中的 1 取出,填到 [l1,r1](从左到右
5
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起