05 2022 档案

摘要:背包问题求方案时,可以进行dp过后,根据结果进行反推。 要求输出方案时,不能简化dp数组的维数。 当需要以字典序最小输出结果时,可以考虑从后向考虑物品,从后向前构建dp数组。 这样,反推的时候就可以从第一个物品开始考虑,就可以贪心的解决字典序问题。 (也可以使用标记数组解) 例题 AcWing12. 阅读全文
posted @ 2022-05-28 12:33 80k 阅读(26) 评论(0) 推荐(0) 编辑
摘要:经典数学问题,在一根棍上多个蚂蚁,同时有不同的行走方向和相同的行走速度。如果蚂蚁碰撞则反向。 则整个过程可以等价为,蚂蚁之间不碰撞而穿过。 例题:Kick Start Round C 2022 https://codingcompetitions.withgoogle.com/kickstart/r 阅读全文
posted @ 2022-05-26 18:44 80k 阅读(331) 评论(0) 推荐(0) 编辑
摘要:1、对于体积至多为V 初始化全为0,转移时要求j-v[i]>=0(否则,j<v[i],不可能选) 2、对于体积恰好为V 初始化dp[0]为0,其余为正无穷,转移时要求j-v[i]>=0 3、对于体积至少为0 初始化dp[0]为0,其余为正无穷,转移时不做要求。如果j-v[i]<0,则从0转移(因为如 阅读全文
posted @ 2022-05-26 11:01 80k 阅读(21) 评论(0) 推荐(0) 编辑
摘要:此题中对面包的分割,可以反向看做为合并。这样对面包的N-1次分割操作,可以视为类似哈夫曼树构建的N-1次合并,这样就可以利用哈夫曼编码的方式进行转化。 阅读全文
posted @ 2022-05-23 22:13 80k 阅读(59) 评论(0) 推荐(0) 编辑
摘要:AtCoder Beginner Contest 252 E - Road Reduction https://atcoder.jp/contests/abc252/editorial/4005 可以证明,总可以构建出一个生成树,使某一点到其余点的距离,等于原图中某一点到其余点的最小距离。 证明方法 阅读全文
posted @ 2022-05-23 17:24 80k 阅读(75) 评论(0) 推荐(0) 编辑
摘要:例题 AcWing 1010. 拦截导弹 建立最长下降子序列模型。 同时对于最少需要配备的系统数,可以利用贪心法,判断添加新系统还是放入某个旧系统中(若放入旧系统,则选择大于当前导弹高度的最小值,同时可以发现系统当前高度单调上升,可二分)。 AcWing 187. 导弹防御系统 上一题的拓展,由于有 阅读全文
posted @ 2022-05-19 22:03 80k 阅读(32) 评论(0) 推荐(0) 编辑
摘要:对AcWing 1015. 摘花生(走一次)的拓展 二维网格,左上到右下走两次,或者左上到右下再到左上,求收集数总和的最大值。 等价于求两条路径,和行走方向是无关的。 故都可以等价为从左上同时走。 例题: AcWing 1027. 方格取数AcWing 275. 传纸条 构建dp的方法是,三位dp, 阅读全文
posted @ 2022-05-19 21:50 80k 阅读(28) 评论(0) 推荐(0) 编辑
摘要:多重背包问题可以用单调队列进行优化 原理见:提高课1.3.1 背包模型(一) 离题:6. 多重背包问题 III 单调队列的deque实现如下: #include<bits/stdc++.h> using namespace std; int v[1010]; int w[1010]; int s[1 阅读全文
posted @ 2022-05-19 21:45 80k 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1、在图的邻接表存储中,可以使用模拟链表法: const int N,M=2*N; h[N],e[M],ne[M],idx;//链表头/链表结点的序号/链表节点的下一个节点 void add(int a,int b) { e[idx]=b; ne[idx]=h[a]; h[a]=idx++;} 也可 阅读全文
posted @ 2022-05-01 20:05 80k 阅读(30) 评论(0) 推荐(0) 编辑
摘要:https://codingcompetitions.withgoogle.com/codejam/round/0000000000877b42/0000000000afdf76#problem 数学题,利用和的平方与平方的和以及交叉项的关系求解。 可以在k<=2的范围内得到一个有效的解。 #inc 阅读全文
posted @ 2022-05-01 17:00 80k 阅读(32) 评论(0) 推荐(0) 编辑
摘要:https://codingcompetitions.withgoogle.com/codejam/round/0000000000877b42/0000000000afe6a1#analysis 一道复杂的字符串拼接模拟题。 可以考虑对每个字符串进行预处理。 如果在middle的字符在其他字符串中 阅读全文
posted @ 2022-05-01 16:36 80k 阅读(40) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示