上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页
摘要: 动态 \(DP\) 引入: 一般来说,树上 \(DP\) 问题是不做改变的,只用计算一遍就行了。 但是给你说:更改一个点的权值,再去询问你答案。 这时候再算一遍?或者是只处理这个点的父亲部分?但是这样万一成链,那不是时间复杂度又爆了? 所以,我们引入了 动态 \(DP\) 这个概念。 解决问题: 直 阅读全文
posted @ 2021-09-27 19:16 Evitagen 阅读(55) 评论(0) 推荐(0) 编辑
摘要: UVA10817 校长的烦恼 Headmaster's Headache 题意: 一开始有一些老师,又来了一些申请者 每个老师能教一个或多个科目 校长想要选择一些申请者以保证每个科目都至少有两名老师能教 同时总共花的钱要最小。 分析: 一眼状压 \(dp\) . 我们考虑压缩科目,设置 \(dp[i 阅读全文
posted @ 2021-09-27 11:15 Evitagen 阅读(47) 评论(0) 推荐(0) 编辑
摘要: \(minmax\) 搜索: 定义: 也叫对抗搜索,搜索时同时取最大/最小。 形式: 两人相互博弈,都希望自己的答案更优秀,即: \(A\) 希望自己答案更大,\(B\) 希望 \(A\) 的答案更小。 解决: 在搜索时,我们进行人物的判断: 若当前是 \(A\) ,我们的转移方程中就取 \(max 阅读全文
posted @ 2021-09-27 10:25 Evitagen 阅读(140) 评论(0) 推荐(0) 编辑
摘要: P4363 [九省联考2018]一双木棋chess 题意: 两人下棋,要求下棋时上面左面必须全有棋子,否则不能下,双方采用得分最优策略,询问两人得分之差。 分析: 棋盘的状态可以用一个倒着的三角形表示(因为下棋限制条件),同时因为数据范围: 可以用到 轮廓线 \(dp\) 。 设竖着的状态是 \(1 阅读全文
posted @ 2021-09-27 09:49 Evitagen 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 区间 \(DP\) 定义: 区间类动态规划是线性动态规划的拓展,它在分阶段地划分问题时,与阶段中元素出现的顺序和由前一阶段的哪些元素合并有很大关系。 操作: 定义 \(f[i][j]\) 表示将下标位置 \(i\) 到 \(j\) 的所有元素合并能获得的价值的最大值。 \(f[i][j]=max(f 阅读全文
posted @ 2021-09-26 21:55 Evitagen 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 背包 \(dp\) 定义: 选择一组有每一组的贡献值,有选择的上限,询问贡献值的题目 分类: \(0/1\) 背包: 这里需要注意一下的就是节省一维,需要倒序枚举的 \(O(nw(背包上限))\) 的写法: for(int i=1;i<=n;i++) for(int j=W;j>=w[i];j--) 阅读全文
posted @ 2021-09-26 19:26 Evitagen 阅读(201) 评论(0) 推荐(0) 编辑
摘要: CF372C Watching Fireworks is Fun 题意: 城镇中有 \(n\) 个位置,有 \(m\) 个烟花要放。第 \(i\) 个烟花放出的时间记为 \(t_i\) ,放出的位置记为 \(a_i\) 。如果烟花放出的时候,你处在位置 \(x\),那么你将收获 \(b_i-|a_i 阅读全文
posted @ 2021-09-26 17:17 Evitagen 阅读(46) 评论(0) 推荐(0) 编辑
摘要: [HEOI2013]Eden 的新背包问题 题意: 多重背包,但是每一个询问会有一种物品不能选,询问最大价值。 分析: 首先进行二进制拆分是肯定的,但是这样直接算肯定不行。 我们回想起来原先 \(dp\) 状态的设定: \(dp[i][j]\) 表示选到第 \(i\) 个物品,背包上限为 \(j\) 阅读全文
posted @ 2021-09-26 16:08 Evitagen 阅读(49) 评论(0) 推荐(0) 编辑
摘要: upper/lower_bound 的用法: 这俩都是利用二分查找的方法在一个排好序的数组(可以是各种数据结构,如 \(map\) 之类的)中进行查找的。 数组从小到大: lower_bound(begin,end,num); 找第一个 \(\geq num\) 的数字,返回地址,不存在则返回 \( 阅读全文
posted @ 2021-09-26 11:29 Evitagen 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 折半搜索 引入: 一般来说,很多元素少的题都可以用暴力搜索直接写。 比如说枚举每个点的使用情况...每个物品的使用....这类问题,时间复杂度为 \(O(2^n)\) 但是,当给定的 \(n\) 变大时,我们应该怎么办,这就引出了折半搜索( \(meet in the middle\) ). 定义: 阅读全文
posted @ 2021-09-26 08:41 Evitagen 阅读(111) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页