4012: [HNOI2015]开店 Time Limit: 70 Sec  Memory Limit: 512 MBSubmit: 2452  Solved: 1089[Submit][Status][Discuss] Description 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到 人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱.这样的 想法当然非常好啦,但是她们也发现她们面临着一个问题,那就是店开在哪里,面 向什么样的人群.很神奇的是,幻想乡的…
#2116. 「HNOI2015」开店 题目描述 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱.这样的想法当然非常好啦,但是她们也发现她们面临着一个问题,那就是店开在哪里,面向什么样的人群. 很神奇的是,幻想乡的地图是一个树形结构,幻想乡一共有 nnn 个地方,编号为 111 到 nnn,被 n−1n-1n−1 条带权的边连接起来.每个地方都住着一个妖怪,其中第 iii 个地方的妖怪年龄是 xix_ix​i​…
好久没写数据结构了 来补一发 果然写的时候思路极其混乱.... LOJ #2116 Luogu P3241 题意 $ Q$次询问,求树上点的颜色在$ [L,R]$中的所有点到询问点的距离 强制在线 询问次数,树上点数约$ 2·10^5$ $ Solution$ 首先有 $ dist(x,y)=deep(x)+deep(y)-2·deep(lca(x,y))$ 显然这个等式的前两项很容易用前缀和什么的维护 只考虑第三项的话相当于是有边权并且强制在线的「LNOI2014」LCA 用同样的套路将$ d…
/* 考虑将所求的值拆分 记每个点到根的路径长度为dis_i, 那么我们要求的就是\sum_{i = l} ^ r dis_i + dis[u] * (r - l + 1) - 2\sum_{i = l} ^ r dis_{LCA(i, u)} 前两个前缀和处理 对于第三个可以转换成一个经典问题, 就是对于每个点到根的路径 + 1, 那么第三个东西就是这个点到根的贡献和了 */ #include<cstdio> #include<algorithm> #include<cst…
题解 一道我觉得和二叉树没有关系的题-- 因为直接上点分就过了,虽然很慢,而且代码很长 你需要记录一个点分树,对于每个点分树的重心,记录一下上一次进行分割时树的重心以及这个重心和上一次重心所连接的点以及连接的边的距离 然后计算这个重心和所在的树到上一个重心节点路径和的前缀和,还有节点个数和 处理每棵树的节点路径前缀和和节点个数前缀和 处理的时候枚举这个点经过的每个重心,统计过重心的路径和即可 代码 #include <bits/stdc++.h> #define fi first #defin…
「HNOI2015」菜肴制作 这道题想到了其实还挺水的,一开始我直接用小根堆拓扑然后就爆0了,然后我又用十万个堆搜索,T30,还是xkl告诉我要倒着拓扑. 首先要建反图,对于入度为0的点,较小的点先输出所以要优先拓扑大的点,这样就保证了大的点及其子树(其实并不是树,这样好理解点)都存在数组前面,再倒着输出即可. #include<iostream> #include<cstring> #include<cstdio> #include<time.h> #in…
\(\color{#0066ff}{ 题目描述 }\) 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱. 这样的想法当然非常好啦,但是她们也发现她们面临着一个问题,那就是店开在哪里,面向什么样的人群.很神奇的是,幻想乡的地图是一个树形结构,幻想乡一共有 \(n\)个地方,编号为 \(1\) 到\(n\) 被\(n-1\) 条带权的边连接起来.每个地方都住着一个妖怪,其中第\(i\) 个地方的妖怪年龄是 \(x_…
题目描述 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱.这样的想法当然非常好啦,但是她们也发现她们面临着一个问题,那就是店开在哪里,面向什么样的人群.很神奇的是,幻想乡的地图是一个树形结构,幻想乡一共有 n个地方,编号为 1 到 n,被 n-1 条带权的边连接起来.每个地方都住着一个妖怪,其中第 i 个地方的妖怪年龄是 x_i.妖怪都是些比较喜欢安静的家伙,所以它们并不希望和很多妖怪相邻.所以这个树所有顶点的…
题目描述 给你一棵 $n$ 个点的树,边有边权.$m$ 次询问,每次给出 $l$ .$r$ .$x$ ,求 $\text{Min}_{i=l}^r\text{dis}(i,x)$ . $n,m\le 10^5$ . 题解 动态点分治+线段树 分块做法太傻逼了我们把它丢到垃圾桶里.树上距离考虑动态点分治. 求出这棵树的点分树,对每一棵点分树子树开一棵动态开点编号线段树,维护编号在某区间内的点到当前点距离的最大值. 对于一次查询,我们在点分树从 $x$ 到根的路径上所有点对应的线段树上查询 $[l,…
\(\color{#0066ff}{题目描述}\) JOHNKRAM 最近在参加 C_SUNSHINE 举办的聚会. C 国一共有 n 座城市,这些城市由 n−1 条无向道路连接.任意两座城市之间有且仅有一条路径.C_SUNSHINE 会在编号在 [1,n] 内的城市举办聚会. 为了整整 JOHNKRAM,C_SUNSHINE 把他丢在了城市 x,让他自己走到一座城市去参加聚会.JOHNKRAM 希望你能帮他计算,他最少要走多长的路才能到达一座正在聚会的城市? 当然,C_SUNSHINE 一共举…