CF
code到飞起
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
F. Delete The Edges
给出一个图,求一条欧拉回路。另外加入一种模式,如果开了,则后面的是各一次删一条。由于开了之后是各一次删一条边,那么就只能是已一个点为中心来回走,不然删不掉所有的边。因此图就变成了两部分,一个是欧拉回路全删掉,一个是以一个点为中心的星图。枚举星图的中心,然后把他所有相邻的边删掉,如果此时奇数点大于1,那么肯定不存在,因此中心肯定是欧拉的终点(奇数点)。有两种情况:1. 相邻的奇数点都放在星图 如果欧拉图的奇数点等于1,该星图中心就必须也是奇数点。如果是0,则是偶数点。...原创 2021-05-22 19:31:17 · 196 阅读 · 0 评论 -
H. Yuezheng Ling and Dynamic Tree
给出一颗树,知道节点i的父亲是a[i],并保证了a[i]<i。给出n个询问:1. l,r区间的节点的a[i] = max(a[i]-x,1)2.问lca(u,v)由于a[i]<i,那么节点和父亲就是有序了。由于是区间询问,可以用莫队分块。按sqrt(n)分块后,记录每个节点到块的最小节点 f(i) = f(a[i])。这样就相当于把一颗树缩成了sqrt(n)个节点的树了。更新的时候,对于[l,r]区间,如果是同一个块,则暴力(sqrt(n)),如果不是同一个块..原创 2021-05-20 04:18:11 · 158 阅读 · 0 评论 -
CF 703 F. Pairs of Paths
给出一棵树,询问m条路径,有多少对路径相交于一点。路径相交只有两种情况,一种是相同lca,一种是不同lca。先对路径[a,b]预处理,记录lca(a,b)下a,b分别在哪个儿子。对于相同lca的:当前查询路径[a,b],则和该路径只在lca相交的路径数等于该lca(a,b)的路径总个数-在a下儿子的个数-在b下儿子的个数+ab下儿子的个数(容斥)。这里注意的是,如果先统计所有儿子的个数,那么对于单点的路径,他会自己和自己匹配,最后需要减掉。最后结果就是总和/2.如果是边处理边..原创 2021-05-09 02:17:58 · 222 阅读 · 0 评论 -
CF 718 E - Group Photo
给出一个ai数组,然后构造C和P序列,两个序列的合集是1到n的排列。然后c的排列对应的a的和要小于p对应的a的和。而且C序列相隔两个数的差值要递增,P要递减。 具体还是去看题目吧(少写点字)由于C要递增,P要递减,因此只有几种情况1.C一开始是连续的,然后后面是差值为2。 (12345 7 9 11 。。。。)2.C前面放一个P,然后从2开始的第一种情况3.整个CP序列最后是C,然后前面按第一种情况4.2,3整合还有特殊的两种5. CP序列C都在最后面。6. 没有C.原创 2021-04-24 03:07:17 · 257 阅读 · 0 评论 -
D. Odd Mineral Resource
由于是统计树上某个区间的值,因此就是树上莫队了。套个树上莫队的模板先。。。对树上的区间进行排序,然后更新的时候判断一下更新的节点是奇还是偶,放进cnt数组里面。然后问题来了。查询的是对cnt数组的一个区间进行查询,那么这里就需要用到树状数组去二分了。这样在修改的时候就多了一个log,这样就T了。所以不能对修改做任何扩展,只能修改查询部分。继续使用分块思想。对cnt数组去分组。然后查询的时候一组一组去查询,如果组内有数据,就直接暴力返回结果。一共有sqrt(n)个组,组..原创 2021-04-21 18:53:44 · 177 阅读 · 0 评论
分享