自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

转载 简要复习线段树

线段树(Segment Tree)的组成 主要针对题目 以下出现的k为线段树内代表区间的点的编号 数据 点的个数 n 该点代表的区间各数之和 sum[4*maxn] 该点代表的区间上改变的量 add[4*maxn] sum[k] 和 add[k] 的 区分 比如说 , k代表的区间上每个数都加上num, 则变化后的sum[k] = sum[k] + (区间长度) * num 且...

2019-07-28 16:54:00 87

转载 [luoguP1967]货车运输

原题 我做这道题可以说做的心力交瘁,累计做题2天半,重构代码1次,调试 无数次 , 面向数据编程 ,不过总算是过了 思路很清楚,题解很多,是最大生成树 + 倍增lca求路径最小边权 下面主要总结一下经验教训: 一. 最大生成树的算法选择 和 原图未知连通性、环 的考虑问题 算法选择 题中的图非常随意,可能有环,也可能有相互不连通的两个甚至多个连通分量。这种情况下kruskal仍然可用(...

2019-07-24 15:05:00 110

转载 [luoguP1220]关路灯

原题 像这种每一阶段有两种决策的题,千万不能像我一样,翻译题目条件朴素地解答。 这样做的后果就是 你发现需要同时通过回溯获得两个值,很棘手。 比如说 设你当前所处的位置为阶段,以向左关和向右关作为每个阶段的决策 这样在每个阶段就会有走路步数、消耗功、关灯数量等三个状态。 如果以关掉该灯所用时间来计算消耗的功,我们就需要从最后一个关掉的灯倒着推, 因为后面所用时间你是无从知晓的,只能从上一...

2019-05-18 11:05:00 100

转载 [luoguP4677]山区建小学_不完全做法

原题 一道绿题让我磨洋工磨了两个星期还行orz 感觉做这种题还是做不到一步直达dp方程的水平,需要经历一个从普通爆搜,到记忆爆搜,最后再到dp转移的过程 普通爆搜,漫无目的地模拟瞎找。眼瞧着这个鬼玩意儿没什么思路,别无他法。先选学校,每选完一次学校O(n*n)得结果,这样肯定是不行的。 void dfs(int last,int left) { if(left==0){ ...

2019-04-28 08:32:00 114

转载 [luoguP2573]滑雪

原题 在直接kruskal做法WA了n回,终于明白 紫题不是我这种蒟蒻不撞南墙心不死就能做出来的, 一定会用到我不知道的做法 一开始dfs担心会超时,但实际上加vis遍历一遍图只是O(N)的复杂度,以实际为准 left questions 1.分离出可到达的边组成新图的条件和必要性 加入不能到达的边会出错 2.cmp以点的高度为第一关键字的原因 从高处往低处加边,较高处点一定可以滑...

2019-03-31 10:48:00 74

转载 [luoguP1280]尼克的任务

原题 神奇的一道没办法划分类别的dp题。 看上去就像背包,有时间有费用 但试了背包的做法发现不对啊,只能弄出最大费用或最小价值 卡在从后往前转移什么,应该怎么转移的阶段上, 没有意识到由于数据范围小,没有任务的空闲时间是可以直接加1解决的orz 从后往前转移空闲的时间, 以有任务的时间点作为转移阶段和决策点, 以任务结束时对应的空闲时间作为转移对象。 questions left 从后...

2019-03-31 08:23:00 63

转载 [luoguP1156]垃圾陷阱

两天来一直在弄 垃圾陷阱 这道题, 最开始竟然连dfs也不会写orz , 非常急躁地想要去做题, 最后写出了一个结构和码风都非常差的剪枝dfs。 数据很水,让我过了7个点 然后就想着要改成记忆化搜索, 结果因为不知道怎么处理生命的限制条件而无从下手。 看到time这个维度可以删去,就删了,然后开三维数组。 但因为结果有两种情况, 返回了一种情况又想着怎么弄另一种情况, 最后这种尝试在调试...

2019-03-16 12:01:00 101

转载 简要理解ST表

  ST表 注:ST表需要用到倍增算法;ST表实质上是一种DP ST表的作用 快速查询区间最大值和区间最小值 前提:倍增 我们读入了一个长度为n的数列,用a[1]~a[n]存储。然后我们不由分说地先算出数列中第1~n-1个数的 后两个数(包括它自身)中的最大值,比如说,第一个数后两个数的最大值=max(a[1],a[2])。a[n+1]不存在,所以 不用计算a[n]后两个数的最...

2019-02-15 14:20:00 161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除