- 博客(5)
- 收藏
- 关注
原创 51nod 1681 公共祖先
题目描述:戳这里题解:这个题目有一个非常好的技巧。我们要求的其实是某一个点在两颗树中的子树中同时含有的点的数量。我们发现这个东西很难求,因为这个东西在两个子树中都是散乱无序的。那么我们如果把一颗子树中的量变得有一定的关系可循,那么接下来只需要关心另一颗树就好了。那么我们不妨把第一颗树重新标一个号,编号就为原树的dfs序。那么第一颗子树中的点的编号都会变成连续的。接下来只要到第二颗子树中查询这个...
2018-10-28 19:02:58 201
原创 SPOJ 10628 /LuoguSP10628 COT - Count on a tree
题目描述:戳这里题解:这题是主席树上树(???)我们发现对于一个点,我们可以维护从它到根的权值线段树,那么对于一个点对x,y,我们只需要求出它们的lca z,以及z的父节点,那么就可以容斥一下,sumx+sumy−sumz−sumfazsumx+sumy-sumz-sum fazsumx+sumy−sumz−sumfaz。直接建n颗主席树是会mle的,所以我们直接用主席树,一个点的线段树建立...
2018-10-28 15:37:43 287
原创 BZOJ 2286消耗战
题目描述:戳这里题解:这题就是虚树的板子题啦。我们要求一些最小可以阻断给定k个点到根的路径的边权和。那么考虑没有询问的情况,可以直接用树形DP。我们先用倍增求出一个点到根的路径上的最小的边权x,然后对于一个选中的节点,肯定是求它的x作为一这个点为根的子树上的答案。而对于一个未被选中的点,就有两种可能,一种是合并它子树中的点的答案,一种是当做选中的点来处理,两个取min。但是我们考虑到有多组...
2018-10-17 18:57:42 205
原创 51nod题解小集
1406:f[x]表示与x相与之后值为x的数的个数。转移就是删掉某一个二进制位上的1。但是如果先枚举当前的值,再枚举删掉那一位会产生重复(一个数删掉一个位上的1或者删掉另外一个位上的1最后都会转移到同时删掉这两个1的情况)。那么我们可以改一下循环的顺序,先枚举删掉的位,再枚举当前的数,就不会有重复啦233331407:这题是上一题的升级版本。考虑容斥。要求出相与后1的位数为x的对数只要求出相与后...
2018-10-06 14:20:28 465
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人