![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CF
code到飞起
这个作者很懒,什么都没留下…
展开
-
F. Delete The Edges
给出一个图,求一条欧拉回路。另外加入一种模式,如果开了,则后面的是各一次删一条。 由于开了之后是各一次删一条边,那么就只能是已一个点为中心来回走,不然删不掉所有的边。因此图就变成了两部分,一个是欧拉回路全删掉,一个是以一个点为中心的星图。 枚举星图的中心,然后把他所有相邻的边删掉,如果此时奇数点大于1,那么肯定不存在,因此中心肯定是欧拉的终点(奇数点)。 有两种情况: 1. 相邻的奇数点都放在星图 如果欧拉图的奇数点等于1,该星图中心就必须也是奇数点。如果是0,则是偶数点。 ...原创 2021-05-22 19:31:17 · 128 阅读 · 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 · 111 阅读 · 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 · 166 阅读 · 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 · 191 阅读 · 0 评论 -
D. Odd Mineral Resource
由于是统计树上某个区间的值,因此就是树上莫队了。 套个树上莫队的模板先。。。 对树上的区间进行排序,然后更新的时候判断一下更新的节点是奇还是偶,放进cnt数组里面。然后问题来了。 查询的是对cnt数组的一个区间进行查询,那么这里就需要用到树状数组去二分了。 这样在修改的时候就多了一个log,这样就T了。 所以不能对修改做任何扩展,只能修改查询部分。 继续使用分块思想。对cnt数组去分组。然后查询的时候一组一组去查询,如果组内有数据,就直接暴力返回结果。 一共有sqrt(n)个组,组..原创 2021-04-21 18:53:44 · 134 阅读 · 0 评论