摘要: 我们发现要求的答案是depth[u]-min(depth[u]+k,mx)之间的属于他子树的最小值,mx是最深的深度 在线算法,不难想到用主席树对深度建树,这样就可以求取区间深度的信息,区间min没有可减性,但是并不影响本题做法 因为我们只需要查找指定dfs序区间中的答案即可,这样才是他子树中的答案 阅读全文
posted @ 2020-12-07 22:49 朝暮不思 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 这题是dp其实比较好看出来,问题是状态如何设计。 观察题目信息,一看W,X,B,大的吓人,显然不可能作为方程,那么题目中就没几个可以作为状态的了 那么显然将获取几个作为状态比较合理,进一步思考,我们要求的肯定是获取越多越好,并且获取相同的数量还剩下的魔法越多越好 这样状态就呼之欲出了,之后就是类似背 阅读全文
posted @ 2020-12-07 18:25 朝暮不思 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 这题其实求的是x的倍数个数是否大于1,大于1肯定不行,否则可以 另外一点,如果区间gcd不能整除x,那么必有至少一个数不是x的倍数,不然gcd会更大 因此我们只要暴力维护并且在发现不止一个的时候及时退出,这样复杂度就可以 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2020-12-07 16:13 朝暮不思 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 这题比较套路,首先我们发现,区间变成约数个数是不可能用区间维护的,因此这题显然有个trick 既然只能暴力修改单点,但是我们又要要求修改次数不能太多,因此可以联想到,是不是我约数个数求几次就变成一个常数了 继续观察,果然是这样,因此我们发现修改次数不会太多 #include<bits/stdc++. 阅读全文
posted @ 2020-12-07 14:48 朝暮不思 阅读(64) 评论(0) 推荐(0) 编辑