自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tlyzxc的博客

我看到到处是阳光,快乐在城市上空飘扬

  • 博客(8)
  • 收藏
  • 关注

原创 Weak Pair 离散化 + 树状数组

传送门题目描述在一棵有根树上求出有多少个点对(u,v),满足 u是v的祖先且a[u]*a[v] ≤k.分析光光跟我说这道题可以用主席树直接秒掉,但是由于我不会主席树,所以只能用一种十分麻烦的做法去处理(下次一定学)我们可以将所有的权值存入vector里面,排序去重,然后用map进行定位,然后去dfs这棵树,每到达一个节点,去二分查找符合当前条件的最大权值是在vector中的位置,然后用树状数组去求和,然后将这个点的权值的位置的地方+1,dfs下一个节点,回溯的时候 -1即可代码#pragma

2020-12-12 01:10:54 128

原创 Counting Offspring dfs序 + 树状数组

传送门题目描述给定一棵树,树根的编号为p。对于每个节点,求以它为根的子树中有多少个节点的编号小于它。分析我们可以根据节点的大小,然后把对应位置设置为1,然后我们要求某一个节点的答案的时候,只需要求子树的值即可我们可以用dfs序和树状数组去维护答案,最后求和即可代码#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#include <que

2020-12-11 22:16:46 93 1

原创 Snacks dfs 序 + 线段树

传送门题目描述百度科技园内有n个零食机,零食机之间通过n−1条路相互连通。每个零食机都有一个值v,表示为小度熊提供零食的价值。由于零食被频繁的消耗和补充,零食机的价值v会时常发生变化。小度熊只能从编号为0的零食机出发,并且每个零食机至多经过一次。另外,小度熊会对某个零食机的零食有所偏爱,要求路线上必须有那个零食机。为小度熊规划一个路线,使得路线上的价值总和最大。分析这道题我们可以把树形结构去转换成链式结构,去维护从跟节点到每一个节点的距离,然后用线段去去维护区间最值,修改一个点的价值,其实就是对

2020-12-11 22:04:52 108

原创 Alyona and a tree 树上差分 +倍增

传送门分析这道题跟我前段时间写的一道数位DP的思路有点一致,但是居然没想出来首先我们确定一下,任何一个平衡数的支点,都仅存在一个支点,所以,我们可以去枚举每一个支点,计算每一个支点下,平衡数的数量,然后相加即可最后只需要注意一下,如果每一位都取0,那么任何一位都可以作为支点,但合法的数字只有一个0,所以最后答案需要特殊处理一下代码#include <iostream>#include <cstdio>#include <cmath>#include &l

2020-12-10 23:36:11 134

原创 松鼠的新家 LCA + 树上差分

题意中文题意就不需要分析了吧分析首先两点之间,我们应该去走最短路径最能得到最优解,所以很容易想到求LCA,假设两点分别为x,y,LCA(x,y) = u,所以只需要把路径 x -> u -> y上的所有点加上一个糖果即可,暴力做法肯定会t,所以我们考虑一种很巧妙额做法:树上差分两个子节点+ 1,LCA - 1最后因为LCA在这条路径上因为两点子节点都加了1,所以造成LCA增加了两次,需要给LCA和他的父节点 - 1最后因为除了出发的点,每一个点都即成为了一次出发点,也成为了一次终点,但

2020-12-07 15:53:32 94

原创 让我们异或吧 DFS + 位运算技巧

题意中文题意就不需要分析了吧分析我在洛谷上面搜的是LCA的标签,但是这道题跟LCA好像关系不太大?首先因为有n - 1条边,首先我们可以确定这是一条树,然后我们去求异或值的时候,可以先求出点到跟节点的异或值,然后把待求的两点跟根节点之间的异或值异或一下就好了,因为重复的部分会进行抵消代码#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#inclu

2020-12-07 10:08:39 96

原创 Information Graph

题意有 n 个雇员在公司 “X” 工作 (为方便考虑,将他们从 1 到 n 编号)。最初,雇员之间没有任何关系。在接下来的每 m 天中,每天发生以下事件中的一件:要么雇员 y 变成雇员 x 的上司 (那时,雇员 x 尚未拥有一个上司);要么雇员 x 取得一小包文件并签署它们,然后他将这一小包给了他的上司。他的上司签署了这些文件,并将它们给了更上一层的上司,依此类推 (签署文件的最后一人,将它们发送到归纳箱中);要么类型为 “判断雇员 x 是否签署了特定的文件” 的一个请求到来。您的任务是编写一个程

2020-12-06 21:54:08 160

原创 Blood Cousins dsu on tree + k祖先查询

题意给出一棵家谱树,定义从 u 点向上走 k 步到达的节点为 u 的 k-ancestor。多次查询,给出 u k,问有多少个与 u 具有相同 k-ancestor 的节点。分析这个问题我们可以离线去查询首先我们先把每一个查询节点的k-ancesto处理出来,然后就把这个问题转化成求节点x的子树中,比他深度大k的节点有多少,就是一个树上静态统计问题了,可以用dsu on tree来进行处理代码#include <iostream>#include <cstdio>#i

2020-12-06 13:17:41 93

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除