newcoder-最长树链-树/gcd】的更多相关文章

https://ac.nowcoder.com/acm/problem/13233 链接:https://ac.nowcoder.com/acm/problem/13233来源:牛客网 题目描述 树链是指树里的一条路径.美团外卖的形象代言人袋鼠先生最近在研究一个特殊的最长树链问题.现在树中的每个点都有一个正整数值,他想在树中找出最长的树链,使得这条树链上所有对应点的值的最大公约数大于1.请求出这条树链的长度. 输入描述: 第1行:整数n(1 ≤ n ≤ 100000),表示点的个数. 第2~n行…
Dynamic GCD 题意:一棵树,字词树链加,树链gcd 根据\(gcd(a,b)=gcd(a,a-b)\) 得到\(gcd(a_1, a_2, ..., a_i) = gcd(a_1, a_1-a_2, a_2-a_3,...)\) 同时维护原序列和差分序列就行了 无脑树剖,分成几段.不需要轻儿子的差分值. 注意最后答案取一下绝对值!!! #include <iostream> #include <cstdio> #include <cstring> #inclu…
[SinGuLaRiTy-1035] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 关于树链 树链是什么?这个乍一看似乎很陌生的词汇表达的其实就是在一棵树中从一个节点到另外一个节点的路径.在许多看似复杂的图论问题中,我们实际上只要对其进行适当的处理,把图转化为一棵树,问题就会得到化简,再运用树链的相关思想就可以较为轻松地解决. 树上倍增 所谓的“树上倍增”,其实就是一种记录节点的方法.我们定义一个数组f[i][j],表示节点i的第2^j…
题目大意: 给你一棵带点权的树,找出一个最长的树链满足链上点权的最大公因数不为1. 思路: 暴力DP. 对于每个点,记录一下以这个点为一个端点的所有链的最大公因数及长度. 然后暴力转移一下,时间复杂度O(n^2logn),不过中间有一些情况是可以舍掉的,做不满. 本来是想试试这样暴力能拿多少分的,没想到直接A掉了. #include<cstdio> #include<cctype> #include<vector> #include<hash_map> in…
BZOJ 洛谷 \(Description\) 给定一棵树,每次询问给定\(p,k\),求满足\(p,a\)都是\(b\)的祖先,且\(p,a\)距离不超过\(k\)的三元组\(p,a,b\)个数. \(n,q\leq3\times10^5\). \(Solution\) \(p,a,b\)都在一条链上. 那么如果\(a\)是\(p\)的祖先,答案就是\(\min(dep[p],\ k)*(sz[p]-1)\).可以\(O(1)\)计算. 如果\(a\)在\(p\)的子树中,答案就是\(\sum…
hdu4871 Shortest-path tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 130712/130712 K (Java/Others) Total Submission(s): 382    Accepted Submission(s): 115 Problem Description Given a connected, undirected graph G, a shortest-path tree r…
题目描述 Mr. Walker 最近在研究树,尤其是最长树链问题.现在树中的每个点都有一个值,他想在树中找出最长的链,使得这条链上对应点的值的最大公约数不等于1.请求出这条最长的树链的长度. 输入格式 第一行一个整数 n,表示点的个数. 接下来 n−1 行,每行两个整数 x,y 表示 x,y 之间有边. 数据保证给出的是一棵树. 接下来一行 n 个整数表示每个点对应的权值 ai​. 输出格式 输出一个整数,表示这条树链的长度. 样例 样例输入 4 1 2 1 3 2 4 6 4 5 2 样例输出…
  2020/4/30   15:55 树链剖分是一种十分实用的树的方法,用来处理LCA等祖先问题,以及对一棵树上的节点进行批量修改.权值和查询等有奇效. So, what is 树链剖分? 可以简单的理解为,将一棵树分成许多条不相交的链,每次我们只要得知链首,便可对该条链上所有的点用数据结构(like 线段树)进行相关操作 . 首先,介绍最常用的轻重链剖分. 明确最常用的轻重链概念: 重儿子:父亲节点的所有儿子中子树结点数目最多(size最大)的结点: 轻儿子:父亲节点中除了重儿子以外的儿子:…
LINK:小V和gcd树 时限是8s 所以当时好多nq的暴力都能跑过. 考虑每次询问暴力 跳父亲 这样是nq的 4e8左右 随便过. 不过每次跳到某个点的时候需要得到边权 如果直接暴力gcd的话 nqlogn就过不了了. 这里有两种解决办法: 一种是比赛的时候队友想的 一种是比较容易想到的方法. 前者套用树链剖分 只对重儿子的边进行修改 这样每次修改的复杂度为qlog. 考虑查询的时候沿着重链向上跳 这样重边可以O(1)得到答案 轻边暴力. 那么就得到了一个 nq+qlog^2的做法了. 当然可…
1984: 月下“毛景树” Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 1728  Solved: 531[Submit][Status][Discuss] Description 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园. 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里.爬啊爬~爬啊爬~~毛毛虫爬到了一颗小小的“毛景树”下面,发现树上长着他最爱吃的毛毛果~~~ “毛景树”上有N个节点和N-1条树枝,但节点上是没…