上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页
摘要: 【题意】 和 P6329 【模板】点分树 | 震波 十分相似,给一个树,要求你支持如下操作 1.查询某个点权 2.修改到某个点距离小于等于k的点 【分析】 具体的方法就看上一道题目吧,这个只需要把变成区间修改单点查询即可,注意打好永久化标记即可 【代码】 #include<bits/stdc++.h 阅读全文
posted @ 2021-05-20 22:26 andyc_03 阅读(52) 评论(0) 推荐(0)
摘要: 【题意】 给一个树,要求你支持如下操作 1.修改某个点的点权 2.询问到某个点的距离小于等于k的点权和 【分析】 首先看到这种树上距离相关的操作不难想到需要用点分治,由于其需要支持修改操作,所以我们要用到动态点分治并配合数据结构来维护 具体地,我们先建立点分树,对于树上的每个节点,维护2个树状数组, 阅读全文
posted @ 2021-05-20 21:55 andyc_03 阅读(141) 评论(0) 推荐(0)
摘要: 【题意】 给定一个树,要求如下操作 每次修改一个点权之后,询问选择树上哪一个点作为补给站u可以使dis(u,i)*vi的和最小 【分析】 直接考虑修改点权会带来什么影响,建好点分树以后 我们对于每个点记录dis1表示子树内对自己的贡献,dis2表示子树内到fa的贡献,sumv表示子树的点权和,每次跳 阅读全文
posted @ 2021-05-20 21:40 andyc_03 阅读(93) 评论(0) 推荐(0)
摘要: 【题意】 在最短路径树上,最长的包含K个点的简单路径长度为多长?长度为该最长长度的不同路径有多少条 【分析】 首先通过dij跑出最短路径,然后dfs一遍求出求最短路径树,注意到了每个点后,要把儿子节点按照标号排序 之后就是普通的点分治,开一个桶表示到重心经过的边数为i的最大长度以及方案数。每次要先更 阅读全文
posted @ 2021-05-17 22:52 andyc_03 阅读(62) 评论(0) 推荐(0)
摘要: 【题意】 求树上的一条路径,边权的平均值最接近k 【分析】 简单写一下式子,先要用分数规划二分答案 首先我们给所有的边权减去k,简化计算 我选择的方法是在每次分治的时候将所有的子树节点和自己加入按照边权和排序,然后分和大于0和小于0两部分计算,二分答案,>0/<0的有任意一个满足即可 【代码】 #i 阅读全文
posted @ 2021-05-17 21:09 andyc_03 阅读(38) 评论(0) 推荐(0)
摘要: 【题意】 求树上的权值和为k的路径包含最少边数 【分析】 仍然是比较明显的点分治 考虑记录一个l[i]表示权值为i的路径最少边数,得到一个子树的所有点到根的路径,更新答案即可 【代码】 #include<bits/stdc++.h> using namespace std; const int ma 阅读全文
posted @ 2021-05-17 15:13 andyc_03 阅读(37) 评论(0) 推荐(0)
摘要: 【题意】 求树上路径长度为3的倍数的路径数 【分析】 对于每个root,记录长度除以3余0/1/2的数量,计算答案即可 【代码】 #include<bits/stdc++.h> using namespace std; const int maxn=2e4+5; const int inf=0x3f 阅读全文
posted @ 2021-05-17 14:51 andyc_03 阅读(39) 评论(0) 推荐(0)
摘要: 【题意】 求树上长度小于等于k的路径条数 n≤105 【分析】 这是点分治的模板1,我们首先选择出当前处理的树的重心,然后从重心出发,每次计算经过当前这个节点的路径符合条件的有多少 这样统计的过程中,注意要减去不合法的部分,就是每个子树内距离小于等于k-(u->uson) 【代码】 #include 阅读全文
posted @ 2021-05-17 14:29 andyc_03 阅读(54) 评论(0) 推荐(0)
摘要: 【题意】给序列局部排序,问最终排序完成的q位置 【分析】考虑暴力,每次都sort修改局部排序部分,时间复杂度为O(nmlogn) 观察到题目只求q一个位置上的值,所以我们可以对这个答案进行二分,然后把序列根据比mid大/小来转换成0/1 对于0/1的排序,我们可以用线段树计算排序区间l,r的1的个数 阅读全文
posted @ 2021-05-10 22:49 andyc_03 阅读(41) 评论(0) 推荐(0)
摘要: 【题意】区间内ai修改为c^ai(c为给定的固定数),区间求和 【分析】这道题目需要用到一个扩展欧拉定理,我们发现我们实际上在不断的对幂进行取phi的操作,所以这个数量级降的也是十分快,可以先算出最多经历的次数t对于一个修改操作,如果这个区间的修改次数都多余t了,就不用在进行操作了,否则暴力修改即可 阅读全文
posted @ 2021-05-10 22:44 andyc_03 阅读(87) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页