ICode9

精准搜索请尝试: 精确搜索
  • LCA题目选讲32020-09-23 09:00:36

    [NOIP 2013]货车运输 需要找到一条边权最小值最大的路径,我们可以先在图中求出一个最大生成树,然后易证树上的路径的边权最小值是所有可能的路径里最大的。 我们通过LCA求出树上的路径,并且在倍增的时候更新路径最小值。

  • P2664 树上游戏2020-09-05 14:00:43

    传送门:https://www.luogu.com.cn/problem/P2664 看到有关两点间求贡献的题,首先想点分治 解决这道题,需要找到一个性质: 对于树上的一点i,若i的颜色是在该点到根这条链上第一次出现,那么他就可以对所有与它lca为根的点提供size[i]的贡献 画画图,发现性质非常正确,然后点分治处理下就可以

  • 树上差分入门2020-08-31 07:00:41

    一、差分 给定一个序列\(a_1,…,a_n\),定义一个序列\(b_i=a_i-a_{i-1}\),即为差分数组。 听这个名字就知道,差分数组就是记录紧挨着两个数的差值。 该数组有以下性质: 差分数组中\([l,r]\)的和即为\(a_r-a_{l-1}\); 差分数组并不是固定的。不同方式的差分数组有不同的功能。 大概就这

  • 树上直径2020-08-14 21:34:47

    P3174 [HAOI2009]毛毛虫 两种方法:   1、记录以u为根的子树中最深d1和次深d2,然后求出max{d1+d2-1}即可     pf:最长链必然存在一个最高点,最高点必取他的最深和次深(反证法)   2、两遍DFS:先从任意一点P出发,找离它最远的点Q,再从点Q出发,找离它最远的点W,W到Q的距离就是是的直径 /b

  • 【题解】[NOI2011]阿狸的打字机2020-08-14 16:01:11

    阿狸的打字机 \(\text{Solution:}\) 首先观察三种操作:一种是插入一个字符,一种是退回上一步(回到父亲节点)。 所以,我们可以对操作串进行模拟,并处理出每一个串在树上的位置。 接下来,我们考虑如何处理询问。\(y\)是需要跑的串,于是我们应按照\(y\)排序以保证在处理这个\(y\)之前,它本身

  • 树上问题2020-07-22 21:31:35

    树上问题总结 不知道我这个懒人能不能坚持下去 树 树是一种非常优美的结构,n个点,n-1条边; 树的直径 树的直径就是树中最长的一条链,对于树的直径,我单独写过一篇随笔,这里就不再赘余 求树的直径有两种方法,两遍dfs(bfs)或dp求,今天听学长讲了,好像是树上dp, 持续更新中......

  • 树上倍增学习总结2020-07-14 17:02:53

    树上倍增:   没讲的,直接上题 【SCOI2016】幸运数字(题目):   倍增时合并一下线性基即可   1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 using namespace std; 6 7 typedef long long LL; 8 9 const int N = 200

  • P2664 树上游戏2020-06-27 12:57:32

    给定一棵大小为 \(n\) 的树,每个结点都有颜色。 定义 \(s(i, j)\) 为从 \(i\) 到 \(j\) 的不同颜色数量以及 \(sum_i = \sum\limits_{j= 1}^ns(i,j)\)。 求出所有的 \(sum_i\)。 较为复杂的点分治题。 也可以用差分 \(O(n)\) 解决。 #include <cstdio> #include <algorithm> inl

  • 【C++】树上的最远点对2020-05-04 19:41:04

    树上的最远点对【来源】【题目描述】【输入格式】【输出格式】【样例输入】【样例输出】【解析】【代码】 【来源】 51Nod-1766 vjudge 【题目描述】 n个点被n-1条边连接成了一颗树,给出ab和cd两个区间,表示点的标号请你求出两个区间内各选一点之间的最大距离,即你需要求出max{d

  • 树上最小点覆盖问题2020-04-07 17:54:07

    树上最小点覆盖问题:消耗一个节点上的花费可以覆盖它自己及所有与它的相邻节点,求覆盖树上所有节点最小花费。 1077. 皇宫看守 太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫。 皇宫各个宫殿的分布,呈一棵树的形状,宫殿可视为树中结点,两个宫殿之间如果存在道路直接相连,则该道路

  • 树上后缀排序2020-03-16 12:01:35

    把后缀排序搞到了树上。 一个节点的字符串的定义为 这个节点到根经过的所有字符组成的字符串。请将这些字符串按字典序排序。输出排名为i的字符串所在的节点。 特别地,如果两个节点所代表的字符串完全相同,它们的大小由它们的父亲所代表的字符串的大小决定,如果仍相同,则由它们编号的

  • 【ZJOI2015】幻想乡战略游戏【点分树】【带权重心】2020-02-29 15:39:10

    题意:nnn个点带边权的树,动态修改点权viv_ivi​,最小化 钦定一个点xxx 后 ∑idist(x,i)∗vi\sum\limits_{i} dist(x,i)*v_ii∑​dist(x,i)∗vi​的值。 n,q≤105n,q \leq10^5n,q≤105,度数不超过202020 限制度数的树上的一些诡异的操作,时限很长,多半是点分树。 也叫动态点分治,但

  • CSP-S 2019 树上的数2020-02-29 10:02:28

    树上的数 题面 现在有一棵树,每个点上有一个点权,你切断一条边,就会交换边上两个点的点权,求\(1~N\)点权的最小字典序。 \(\text{subtask1}\) \(N \leq 10\) 考场上暴力标配,\(\Theta(N!)\)枚举所有删边顺序,然后取字典序最小的一组。 \(\text{subtask2}\) 存在度数为\(N - 1\)的节点 存

  • P2014 选课 (树上背包)2020-02-20 22:53:21

    树上背包: 树形背包就是原始的树上动归+背包,一般用来处理以一棵树中选多少点为扩展的一类题,基本做法与树上dp无异,不过在状态转移方程中会用到背包的思想。 它基本上是这个样子的: 存图),然后dfs进去补全子节点的信息,f数组的意思是以fa为中转点,找出fa往下的可取1~j个点时各自的最大收益

  • 脑抽之后误以为自己切题/不会做的记录2020-02-19 21:00:53

    以为自己切题 1、 看到取模就以为模数是质数? 模数太小可能出现除0的情况怎么办? 2、 AC自动机的fail树上的链不是trie树上的链。一个串的每一个位置放在fail树上多半不是一条链。 以为自己不会做 1、 学后缀数据结构学傻了不记得kmp、exkmp、AC自动机了?

  • [SDOI2013]森林(树上主席树)2020-02-07 09:00:29

    [SDOI2013]森林(luogu) Description 题目描述 小Z有一片森林,含有N个节点,每个节点上都有一个非负整数作为权值。初始的时候,森林中有M条边。 小Z希望执行T个操作,操作有两类: Q x y k查询点x到点y路径上所有的权值中,第k小的权值是多少。此操作保证点x和点y连通,同时这两个节点的路径上至

  • 树上启发式合并2020-01-14 09:03:27

    题目:一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和。 树上启发式合并真神奇,时间复杂度只有O(nlogn) 看下思路 第一步:我先像树剖那样,跑出重儿子。 第二步:我们dfs这个树,比如说,我们现在跑到了u节点。首先优先跑所有轻儿子,采用尾递归

  • CSP2019 树上的数 题解2019-12-21 19:02:09

    题面 这是一道典型的部分分启发正解的题。 所以我们先来看两个部分分。 Part 1 菊花图 这应该是除了暴力以外最好想的一档部分分了。 如上图(节点上的数字已省略),如果我们依次删去边(2)(1)(3)(4),那么操作完后2号点上的数字就会跑到1号点上,1号点数字会跑到3号点上,3号点数字跑到4号点

  • 题解【luogu5659 树上的数】2019-12-02 11:53:15

    CSP-S2 2019 D1T3 考场上写了2h还是爆零……思维题还是写不来啊 思路分析 最开始可以想到最简单的贪心,从小到大枚举每个数字将其移动到最小的节点。但是通过分析样例后可以发现,一个数字在移动的过程中也可能有无关的边的删除,很难处理。显然直接贪心是不可能的。 分析删边对图的影

  • CSP2019题解2019-11-30 22:55:49

    按照CSP题目顺序来写 格雷码 不难发现答案可以递归找到,然后每一次做即可. 代码 括号树 简单题,直接在树上搞一个栈然后回溯即可. 括号树nmsl 代码 树上的数 咕咕咕 Emiya 家今天的饭 很显然可以看出这题可以容斥,然后就可以写一个\(O(mn^3)\)的\(dp\). 然后考虑后面那两维状态可

  • 关于树上差分2019-11-29 15:51:38

    关于树上差分,可参见网友一博客 https://www.luogu.com.cn/blog/sincereactor/shu-shang-ci-fen-di-liang-zhong-sai-lu 这里我也来说两句: 树上差分分为两个(就像树上dp一样) 1.点差分 2.边差分 1.点差分: 二.关于点的差分(如将路径上的所有点权值加一,求最后点的权值) 此操作中我们这样

  • 树上背包问题做题总结2019-11-13 11:58:43

    背包(一般是\(01\)背包吧)与树形\(DP\)的结合,第一维通常是节点编号,第二维通常是背包体积.由子节点向父节点转移的时候,就是一个普通的背包问题. \(T1\):选课/\(The\) \(more\), \(The\) \(Better\) 洛咕 HDU(多组数据) 题意:给定一个\(n\)个节点的森林,带点权,选\(m\)个点的最大

  • CF379F New Year Tree2019-11-09 20:52:44

    题面: 新年里,程序猿们往往会做一些有趣的事情。你则选择以往这棵树上加节点来取乐。 一个添加节点的操作是这样的: 1) 找到树上的一个叶子结点v   2)设现在树上有n个节点, 那么你现在会加入两个节点n+1和n+2,它们都会成为n的儿子.你的任务是在做q次这样的操作,并在每做完一次后计算一次

  • 树上的好题2019-11-05 19:52:53

    [LNOI2014]LCA 给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。 有q次询问,每次询问给出l r z,求sigma_{l<=i<=r}dep[LCA(i,z)]。 (即,求在[l,r]区间内的每个节点i与z的最近公共祖先

  • 树上差分学习笔记2019-11-03 16:00:11

    学习链接:https://www.sohu.com/a/271430685_100201031 树上差分的方式有两种: 一.点差分:改变树上路径(u,v)上的所有的点的点权值,假设增加了val值 我们对每一个节点维护一个tag数组作为差分数组 考虑改变的影响? tag[u]+=val,tag[v]+=val,tag[lca(u,v)]-=val,tag[fa(lca(u,v))]-=val;

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有