的右端点。
88502520
需要遍历的点一定是在最小的包含白点的连通块内。
剩余的树上每个点都必须经过。因此除了起点与终点之间路径上的边会被经过恰好一次以外,其余所有边都会被经过恰好两次。
不妨先设所有边都经过了两次,若无修改每个点颜色即为初始颜色异或度数奇偶性,只需在其为白时进行一次修改操作。
然后考虑起点与终点之间的路径,它的影响是让路径上的点(包含起点但不包含终点)都被少经过一次。
容易发现,原本为白操作次数减 ,原本为黑色操作次数不变。
于是类似找树的直径即可。
设 为 到最近叶子的距离。
如果 为根, 则 子树内仅需贡献 即可拦截 ,注意到如果 的父节点 能拦截 则没必要动用 ,所以我们令
考虑点分治,根据分治重心我们可以划分成一个点及若干子树。
考虑每个子树对子树外的贡献,以及分治重心对所有子树的贡献。
注意一下一开始钦定的限制条件,不然可能重复计算。
考虑俯视图限制显然是有数的则至少要有 ;主视图、侧视图限制即为每行每列的最大值仍然保留。
贪心地保留每行每列的一个最大值,其余的全削减至 。
注意到可以有一个数同时占行列的最大值的情况。
于是跑一次二分图匹配即可。
顺序显然可以随意移,最后剩下必须连续,求最长上升子序列即可。
预处理出每种颜色的最左最右位置,即求最多保留多少不移动。
设 表示 中最多有多少无需移动, 表示 中,颜色为 的数量。
几个结论:
设 表示 数,在第 次是否能猜中。转移根据结论 1,2,3 即可。
首先从 分别跑一次最短路,容易发现答案仅与其相对大小有关,因此先离散化。
容易将其抽象成一个表格,其中第 号点位于 ,权值为 ,两人分别从 上/左 取若干 行/列。
注意到 ,考虑 dp,设 表示在各自最优策略下当前小 X/小 Y 先手,剩余的点为 及其右下角范围,小 X 的权值与小 Y 的权值的差。
发现其实没必要枚举每个人取到哪一行/列进行转移,只需要一行行一列列转移时注意是否要交给对方即可。
。
被操作的点仅可能是 的点。
显然相邻且均满足 的两个位置无法操作,所以原序列可分为若干交替是否满足 的子串。
每个子任务单独考虑,必须满足 在可交换的区间内且需要交换的数最长下降子序列长度不能超过 。
考虑设 表示已满足的限制的状态 ,从右往左正在满足的是 ,满足到 位,从左往右正在满足的是 ,满足到 位,最少的元素个数。
不妨从左向右考虑,对于所有向右得到的序列 ,若能接在 后面,则满足 的剩余部分可以被 覆盖,于是之后只需要考虑 即可。
对于 ,若已被填满,对于所有向左得到的序列 ,若可以接上,则满足 的接入部分可以被 覆盖,于是之后考虑 的剩余部分即可。
满足:
所以即需求
设 表示第 秒到达第 个绝对安全至少经过多少个周期。
转移的边仅有相邻两个,于是直接 01-BFS。
操作可逆,考虑将起始状态与结束状态转移到一个中间的状态。
不妨设长为偶数,设构造中间状态所有地砖都是横的。
能旋转就旋转,发现一定可以转到。
容易发现 是 的倍数的充要条件是 的各位之和是 的倍数。
注意到 ,所以只需要删除一个数即可,剩余的数从大到小排列。
注意不用删数的情况。
容易将 用 表示。
根据 ,可列出不等式,即可容易解得 取值范围。
最终 最后范围即为答案。
注意无解输出 。
爆搜。
首先判掉叶子节点过少的情况,爆搜的话按照子节点数多的从大往小先摆着,之后的点考虑连到之前的点中。
可以证明这个是能过的。
每个连通块单独考虑,分别黑白染色,取黑白中数量较小即可。
对于每个关卡,分成两类:
一类点直接拆散按从小到大排序选即可。
考虑枚举选一类点 个,则剩余 个点填二类点分 的奇偶性判断:
显然奇数情况记前/后缀最小/大值即可。
在一内向基环树森林上选若干点,使每个点必有一个儿子没选,求权值和最大。
表示当前点选/不选的最大值。
考虑非树边 ,有两种情况:
两者取最大即可。
对于每个点,每种颜色,其单独答案贡献可转化为 。
其中 代表从点 出发,不经过颜色 的点,所构成的连通块大小。
考虑对于所有 ,均挂在深度最小的节点上,之后树上差分统计即可。
若碰到与当前颜色相同的点,之后该子树将失效,贡献更新。
注意根节点父亲颜色应设为“全彩”,特殊考虑即可。
首先求 在以 为根意义下的 lca 即为 lca(u,v)、lca(u,r)、lca(v,r) 中深度最大的点,证明不难通过讨论 是否在 子树内求得。
其次求点 在以 为根意义下的子树。
按顺序从上到下从左到右贪心,首先对该格子的限制一定是上下左右四个格子,显然该格子一定染最小的与其不同的颜色。
接下来考虑是否向右下拓展:注意到向外拓展一层的几个条件:
A
。暴力枚举第一个数,再将所有限制中包含该数的删掉该数,显然从删过的限制之中会产生一个只剩一个元素的限制,于是其为第二个数。
再将所有限制中包含第二个数的删掉,循环该步骤即可。
最后判一下是否合法。
二分答案,check 先把所有都标记为能选,再将所有不合法的点依次剔除。
可以证明这一定最优。
经过一定分析可以发现合法数很少,写个爆搜+剪枝把所有答案先跑出来,查询二分即可。
很容易设出一个简单的 DP,设 表示当前子序列结尾为 ,且保证最终一定含 ,长度最大值。
设
有转移:
其中,
其中 从小到大枚举即可。
线段树辅助转移。
特别注意,初始合法的点仅为 。
每个连通块独立,分别考虑。
根据提示,容易想到按图是否为二分图分类。
若该连通块为二分图,将该图黑白染色,两图的左黑+右白、右黑+左白数量相等,容易证明这是充要的。
若该连通块不为二分图,即其必含奇环,注意到变换之和为偶数,故黑、白点奇偶性相同,且权值集合相同,容易证明这是充要的。
只需要考虑 即可。
贪心地想,容易发现每次只会选一个物品。
综合上述,一个代价为 的物品价值为 ,其新代价为 ,而总新容量为 ,初始答案为 。
注意到价值很小,可以将价值放到状态里,设 表示考虑所有代价 的物品,获得价值为 ,所需要的最小代价。
显然其满足决策单调性,将所有代价为 的物品抽出来排序求前缀和,转移即可。
至少一个点颜色为 ,显然可以转化为求不含颜色 的路径。
对于一个大小为 的连通块,若其均不含颜色 ,贡献即为 。
对于每个点颜色 ,只需求其所有儿子的子树中不包含 的连通块大小之和即可。
注意考虑与根节点颜色不同的点在根部分的答案。
的期望操作数。
177581574
显然将其转化为空位的移动,注意到最后两个相邻的空位一定会由不同的点转移过来。所以直接将所有空位丢入起点,一起跑一遍最短路即可。
注意建图是单向边。
不妨先看 Easy Version,没有删除操作。
容易发现直接对每个询问记忆化答案,暴力往上跳复杂度是对的。
加入删除操作,考虑对每个询问跳过的点记下来,删除的话就对所有经过该点的询问打个标记。之后若询问到有标记的点,则输出标记中的最小值即可,插入的时候把对应标记删除。
这个感性理解一下,复杂度大概也是对的,因为每个询问跳的点必定是已经有过的点,所以点数是 的,总复杂度大概是两个 级别?177713494
分块,对于整块修改只需暴力枚举 更新答案即可,显然这同约数一样可提前预处理。
取一个极远的点为根,任意建一棵树。
一次询问的答案即为出环的边数-入环的边数,分别对每个点相邻两条边算贡献,注意到环内的点一定在其极角排序后一段连续的区间内。因此直接做前缀和查询即可。
注意贡献有正有负且环上点必须按照同种顺序排序,叉积判断即可。
先对 排序,考虑转化为计算 的方案数:
的方案数,转移:
可以前缀和优化。
而 ,所以总复杂度 。
段的状态,转移:
注意到,
可数学归纳法简单证明。
设 表示 时的最小花费。对于题目的嵌套,显然可以看作合并操作。
对于 set, 。
动态开点线段树+线段树合并即可。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有