摘要: "题面" 分析 可以先求最大生成树森林,然后对每棵树进行树链剖分,然后乱搞... 注意,由于是边权,则统一挂向连接点的更深的(挂向浅的后果自行分析),求路径上最小边时不在同一链就普通处理,在同一链,所求区间应去掉更浅的端点。 本题我以为只有只有一棵生成树~~结果CCF原数据真只有一棵~~,感谢luo 阅读全文
posted @ 2019-10-28 22:54 Thomastine 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 基本版 已经很快了,oi基本够用了 高级版 究极快速输入,应该不存在(时间上)卡这个输入的了(所以小心空间); 阅读全文
posted @ 2019-10-28 19:49 Thomastine 阅读(174) 评论(0) 推荐(0) 编辑
摘要: "题目" 分析 此题有O(nlogn)做法与O(n)做法,这里只讲O(nlogn)(~~因为另一种不会~~) 我们可以使用二分(~~巨佬们的长期经验~~)来枚举平均数,在check()时将每个数减去平均数后求前缀和,最后判断合法前缀和的差与0的关系。 重点:二分求平均数,化繁为简(不减平均数而每次枚 阅读全文
posted @ 2019-10-28 16:23 Thomastine 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 树的直径与重心 直径 定义 树中所有最短路径距离的最大值即为树的直径。 性质 1. 直径两端点一定是两个叶子节点 2. 距离任意点最远的点一定是直径的一个端点,这个基于贪心求直径方法的正确性可以得出 3. 对于两棵树,如果第一棵树直径两端点为(u,v),第二棵树直径两端点为(x,y),用一条边将两棵 阅读全文
posted @ 2019-10-26 22:41 Thomastine 阅读(421) 评论(0) 推荐(1) 编辑
摘要: 火车头 线段树写法 不要写结构体,要分开写,不然巨慢。 推荐 "博客1" 阅读全文
posted @ 2019-10-26 14:54 Thomastine 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 01背包 题目 有N件物品和一个容量为V的背包。第i件物品的费用是w[i],价值是v[i],求将哪些物品装入背包可使价值总和最大。 基本思路 主要特征:每个物品只有一件,只有放与不放两种状态,设dp[i][j]表示重量限制为j时在前i个物品中能得到的最大价值 $$dp[i][j] = max(dp[ 阅读全文
posted @ 2019-10-25 22:47 Thomastine 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 1521 华丽的吊灯 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 著名的Microhardware公司即将迎来其创业50周年庆典,为了使这次庆典能够体面而又隆重,以显出公司在国际硬件的龙头地位,总裁决定举办一次交谊舞会,届时 阅读全文
posted @ 2019-10-25 20:08 Thomastine 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 区间dp 常见题型 求区间[1,n]XXXXX后的最大/小值,一般分为无要求或只能/最多分成m段两类 做法 如对分段无要求,设dp[i][j]表示序列中[i,j]的最值,最外层循环区间长度,第二层循环左端点,并能确定右端点,第三层枚举断点; cpp for(rint len = 1;len incl 阅读全文
posted @ 2019-10-25 17:27 Thomastine 阅读(353) 评论(0) 推荐(0) 编辑
摘要: "题面" 分析 按照要求拓扑排序即可 代码奉上 阅读全文
posted @ 2019-10-25 15:31 Thomastine 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 概念 AOV网 1. 一个较大的工程往往被划分成许多子工程,我们把这些子工程称作活动(activity)。在整个工程中,有些子工程(活动)必须在其它有关子工程完成之后才能开始,也就是说,一个子工程的开始是以它的所有前序子工程的结束为先决条件的,但有些子工程没有先决条件,可以安排在任何时间开始。为了形 阅读全文
posted @ 2019-10-24 17:31 Thomastine 阅读(153) 评论(0) 推荐(0) 编辑