摘要: 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 阅读(432) 评论(0) 推荐(0)
摘要: 1521 华丽的吊灯 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 著名的Microhardware公司即将迎来其创业50周年庆典,为了使这次庆典能够体面而又隆重,以显出公司在国际硬件的龙头地位,总裁决定举办一次交谊舞会,届时 阅读全文
posted @ 2019-10-25 20:08 Thomastine 阅读(190) 评论(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 阅读(386) 评论(0) 推荐(0)
摘要: "题面" 分析 按照要求拓扑排序即可 代码奉上 阅读全文
posted @ 2019-10-25 15:31 Thomastine 阅读(124) 评论(0) 推荐(0)
摘要: 概念 AOV网 1. 一个较大的工程往往被划分成许多子工程,我们把这些子工程称作活动(activity)。在整个工程中,有些子工程(活动)必须在其它有关子工程完成之后才能开始,也就是说,一个子工程的开始是以它的所有前序子工程的结束为先决条件的,但有些子工程没有先决条件,可以安排在任何时间开始。为了形 阅读全文
posted @ 2019-10-24 17:31 Thomastine 阅读(168) 评论(0) 推荐(0)
摘要: 基本题型 01分数规划是这样的一类问题,有一堆物品,每一个物品有一个收益ai,一个代价bi,我们要求一个方案使选择的 $$\sum_{} a[i] / \sum_{} b[i] $$ 最大(或最小) 分析 以最大为例,设x为最大值即x = Σai/Σbi,就有x Σbi = Σai Σai x Σb 阅读全文
posted @ 2019-10-23 22:41 Thomastine 阅读(149) 评论(0) 推荐(0)
摘要: 定义dp[i][j]为a中前i个与b中前j个能匹配的最大长度 当 a[i] == b[j] 时,答案来自 dp[i 1][j 1] + 1 否则,来自dp[i 1][j]与dp[i][j 1]中较大一个 cpp for(rint i = 1;i 阅读全文
posted @ 2019-10-23 22:13 Thomastine 阅读(159) 评论(0) 推荐(0)
摘要: 模板 CF10D 参考 "chennachuan_2004 " 阅读全文
posted @ 2019-10-23 16:47 Thomastine 阅读(309) 评论(0) 推荐(0)
摘要: O(n2) 设a[i]表示以元素re[i]结尾的最长上升子序列长度,初始都为1,最外层循环i,内层找[1,i 1]中re[j] a[i] 的来更新a[i] 练习 :求序列中某个点开头的最长上升与下降序列的和; 由于我们正反求某个点的严格单调序列答案都是一样的,可以把原序列复制一遍翻转一下接在前面求一 阅读全文
posted @ 2019-10-23 16:07 Thomastine 阅读(195) 评论(1) 推荐(0)
摘要: 带权并查集 设cnt[x]为x到本集合代表元素的路径值,在递归寻找代表元素时,如果找到就直接返回,没找到先记录下此时x的fa[x],再让fa[x]被更新,fa[x]被更新也意味着fa[x]到代表元素的cnt[fa[x]]被更新了,则此时再用cnt[fa[x]]更新cnt[x],便完成了路径更新。 核 阅读全文
posted @ 2019-10-22 22:36 Thomastine 阅读(82) 评论(0) 推荐(0)