上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 下一页
摘要: #题意 #题解 首先想想删除边之后直径的变化,原直径的两个端点也一定是新直径的端点之一 再考虑删除边之后新的直径不好确定,把删边操作改成加边操作,这样新的直径一定在原来两棵树的直径的$4$个端点中选,总共$6$种情况 所以先处理出完整的树的相关信息,比如求$LCA$的$f,dis$数组,用来判断新的 阅读全文
posted @ 2021-09-10 19:35 conprour 阅读(161) 评论(0) 推荐(0) 编辑
摘要: #题意 #题解 可以很好地巩固倍增基础...(水题) 设计$sum[i][j],dis[i][j]$表示从$i$开始走了$2^j$步路径上的权值和/最小权值,初始值$sum[i][0]=dis[i][0]=w[i]$,转移过程和倍增的转移几乎完全一样 注意一下点是$0\thicksim n-1$ # 阅读全文
posted @ 2021-09-09 22:06 conprour 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 题意 题解 好题啊...可惜我做的时候就像嗑药了,打了乱七八糟一堆bug... 首先要看出最优路径一定是一个最大生成森林。 最大没得说,因为要尽量让权值大。 证明是森林:对于已经生成的一棵树(或者说森林),如果再加入一条非树边 $c->d$,那么原本树上 $c->d$ 的答案一定比新加入这条边的答案 阅读全文
posted @ 2021-09-09 10:38 conprour 阅读(35) 评论(0) 推荐(0) 编辑
摘要: #题意 #题解 这在洛谷上是一道紫题...不枉我费了半个上午 首先可以想到,一个环里的点,要选择的话一定一起选,所以先想到缩点形成一个DAG 考虑如何建边,注意到题目关键:一个软件最多依赖另外一个软件,那么从被依赖想依赖建边,形成的还是一棵树 问题就转化成了:在一个树上每个点都有重量和价值,你有一个 阅读全文
posted @ 2021-09-09 08:14 conprour 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题意 题解 此题坑还是很大的。 一开始看到题目所说概率云云,联想到的是类似期望DP之类的方法,苦思冥想之后放弃,几乎没有思路 首先需要转化问题:求出“选出 t 个点覆盖掉所有的环”的方案数和所有选择的方案数(也就是从 n 个点中选 t 个点,即C(n,m)) 那么我们先预处理出组合数的递推 void 阅读全文
posted @ 2021-09-09 07:38 conprour 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题意 题解 之前一直以为prim堆优化之后复杂度是O(nlogn)...YY了一发之后不出所料的60pts TLE了qwq(实际上是O(n+m)logn) 算法复杂度高的原因建了很多不必要的边 对于每一维空间,只有相邻的两个点才会建边,所以总边数=n*3 再跑kruskal或者prim都可以了 关键 阅读全文
posted @ 2021-09-07 12:49 conprour 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 题意 题解 这题我一开始根本没有思路....因为觉得 s , g 两个量会互相影响,没法做最小生成树(其实也是因为没认真看数据范围) 先想暴力: 多个变量可以“定一移一”,就是枚举其中一个的最大值,然后讨论另一个变量(在这里“讨论”就是做最小生成树) 考虑把 g 从小到大排序,每次对小于当前 max 阅读全文
posted @ 2021-09-07 11:55 conprour 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 题意 题解 这题不是特别难,但是有思维陷阱 题里不断给出各种祖先差异程度的计算方法(其实就是树上距离的求法),不禁让我想着根据 Da+Db=Dc这种形式来判断祖先关系,然后就没有然后了 实际上,不用管加和判断这些东西,因为每次加入最小生成树的都是直系边(因为直系边最短),而当加完直系边之后由于端点都 阅读全文
posted @ 2021-09-07 11:45 conprour 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 题意 题解 由于奇偶性这种性质比较简单,所以可以考虑一下不同区间的选择对于破解序列有什么影响 很显然,如果 每一个点的前缀和都已知,那么相减即可得出每一个单点的值 而每一个区间 [ L , R ] 可以转化成 sum[R]-sum[L-1] 每一个前缀和已知,就相当于 n 个点的 sum 值都要知道 阅读全文
posted @ 2021-09-07 11:31 conprour 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 推荐一篇dalao的博客:wind_whisper qwq特别有帮助 题解 题解 神题!!!能够大大加深对KMP的理解qwq 循环节的常用结论:nxt[i] = i - pre[i] (画画图就能推出来) 对于每一个 nxt[i] 分类讨论: p[i]>0: 此时 s[i] = s[p[i]] p[ 阅读全文
posted @ 2021-09-06 17:25 conprour 阅读(41) 评论(1) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 下一页