上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 75 下一页
摘要: 原题链接 考察:LCA+二分答案 这题也太难想了,本蒟蒻完全不会QAQ 思路: 树上建边,然后每个任务都是一个查询,我们可以利用LCA求出树上任意两点的时间和.这道题要求去除一条边后最小的最大值. 两个最字很容易想到二分答案.假设二分答案为mid.对于每一个任务,检测它的时间是否会>mid.如果会统 阅读全文
posted @ 2021-05-12 13:49 acmloser 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:树上差分 思路: 点差分.区别在于中间点多+了1.注意不能在dfs前对差分数组-1.这样会导致递推错误.比如下图: 1 #include <iostream> 2 #include <cstring> 3 #include <queue> 4 using namespace std; 阅读全文
posted @ 2021-05-12 09:39 acmloser 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:树上差分 思路: 点差分模板题.定义d[i] 为某路径上经过i的次数. 1 #include <iostream> 2 #include <cstring> 3 #include <queue> 4 using namespace std; 5 const int N = 50010 阅读全文
posted @ 2021-05-12 01:13 acmloser 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:LCA+最大生成树 思路: 实际是求两点之间最大的最短边.这样很容易想到二分,但是直接二分会TLE. 然后又会想到次小生成树,但是这道题边不能构成树.由于我们要的边尽量大,可以考虑贪心一波建立最大生成树.然后求两点之间的最小距离直接套LCA倍增板子.这题比次小生成树省事. 时间复杂度 阅读全文
posted @ 2021-05-11 23:45 acmloser 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:LCA 思路: md想到了两两求lca但是没敢继续想下去...我是sb 最近公共祖先一定是对u,v来说最近的,但是对于第三个点需要两两枚举求最小值. 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 阅读全文
posted @ 2021-05-11 21:02 acmloser 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:思维 顺着LCA的标签而来,结果这题貌似没什么关系(甚至想半天没想出来( 思路: 我们发现每个子结点和父节点都差一个斐波那契数.对于样例的树可以表示成 (1) (2) (3) (4 5) (6 7 8) (9 10 11 12 13) 每个数字减去斐波那契数列中最大但严格小于自己的数 阅读全文
posted @ 2021-05-11 15:13 acmloser 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:LCA + 枚举 完全不会...LCA真难.... 思路: 很容易看出两个分为两段的方式: 附加边加上成环后,环上去掉一个树边和一个非树边. 未成环的树边去掉一个边,然后任意去掉一个非树边. 设d[x] 表示 x点到其父节点的边上要去掉d[x]条非树边才断. 考虑枚举非树边,对于非树 阅读全文
posted @ 2021-05-11 14:03 acmloser 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:LCA+Tarjan 思路: 因为N<=1e5,所以上个算法N2 不适用.这里仍然是上道题的思路,枚举所有不在最小生成树的边.求出边两端点u,v.找到u,v在最小生成树的最大值d1和次大值d2.然后通过sum-d1(d2)+road[i].w求解答案. LCA优化的是求两端点之间的最 阅读全文
posted @ 2021-05-10 21:56 acmloser 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:贪心+思维 原来是贪心...还以为是dp 思路: m个已知信息将n个元素序列分成了n+1段.对于每段端点求峰值即可. 但是注意第一天的起点是任意高的. 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 阅读全文
posted @ 2021-05-10 01:30 acmloser 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察: 思维+构造 错误思路: 以451为例.这道题不是从大到小枚举,再取余,存在取小的数更优的情况.dfs一定超时,完全背包不便记录路径. 思路: 我们的集合只包含0与1的数.如果要表示451的4一定需要4个100,5需要5个10.以此类推,由此n每位数字的最大值就是答案的最小长度. 然 阅读全文
posted @ 2021-05-09 23:45 acmloser 阅读(47) 评论(0) 推荐(0) 编辑
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 75 下一页