摘要: Hello 大家好, 我是_sheldon.,是山东省提高组的一名OIer 于2018年元旦入役。我于2019/8/15加入伟大的“博客园”,本博客记录了本人在学习信竟时的部分题解 学习笔记。以后想借助这个平台学习浩瀚的知识,并主要记录自己的学习过程。先给自己一个鼓励,加油! 未来的路还很长,我需要 阅读全文
posted @ 2019-08-15 17:15 _sheldon 阅读(230) 评论(0) 推荐(0) 编辑
摘要: Description 杨先生希望为他的班级拍照。学生将排成一行,每行不超过后面的行,并且行的左端对齐。例如,可以安排12名学生排列(从后到前)5,3,3和1名学生。 此外,杨先生希望每排学生安排高度从左到右减少。此外,学生身高应从后向前减少。想想看,杨先生看到,对于这个12人的例子,至少有两种安排 阅读全文
posted @ 2019-09-08 20:21 _sheldon 阅读(202) 评论(0) 推荐(0) 编辑
摘要: Description 给定一个序列,还有操作数m,对于每个m,你需要将一段区间开方,还有求和 Solution 线段树维护,比较简单,可以当做练习题 Code 阅读全文
posted @ 2019-09-08 20:11 _sheldon 阅读(234) 评论(0) 推荐(0) 编辑
摘要: Description 给定一个01子串和操作数,每次操作可以使一个元素0变为1, 1变为0,求区间最长连续相邻不相等的长度 Solution 对于最长连续不相等,我们可以用几个量来维护,为: 1 lf 从左边开始的最长连续相邻不相等最大长度 2 rf 从右边开始的最长连续相邻不相等最大长度 3 m 阅读全文
posted @ 2019-08-29 17:19 _sheldon 阅读(269) 评论(0) 推荐(0) 编辑
摘要: Description 给定一个序列和静音段,最大值和最小值之差不超过一个特定的阈值c,输出每行示一段静音的起始位置,按照出现的先后顺序输出。如果没有静音则输出NONE。 solution 利用线段树维护区间最大值和最小值,再枚举每个静音段的开始位置,如果区间中的最大值和最小值的差不超过c,就输出 阅读全文
posted @ 2019-08-29 17:08 _sheldon 阅读(255) 评论(0) 推荐(0) 编辑
摘要: Description 你有长度为n的成绩序列,最终成绩为去掉一个最低的成绩后剩下的平均值(多个最低只去掉一个),现在你可以删除前k个(1<=k<=n-2),按升序输出所有可以使你最终成绩最高的K的值。 Solution 考虑线段树, 维护区间和与区间最小值,最后枚举k,计算出平均值,更新答案 Co 阅读全文
posted @ 2019-08-29 10:34 _sheldon 阅读(310) 评论(0) 推荐(0) 编辑
摘要: ST算法流程 预处理 ST算法其实是动态规划,我们用a数组来表示一组数字,设f[i][j]表示从a[i]开始到a[i + 2 ^ j - 1]这个范围内的最大值,即从i位置开始连续2 ^ j个数中最大的数字。由于元素个数为2^j个,所以我们可以把它分成2部分,每一部分的长度为2^(j-1),也就是说 阅读全文
posted @ 2019-08-25 19:53 _sheldon 阅读(182) 评论(0) 推荐(0) 编辑
摘要: Description 阿明是一名推销员,他奉命到螺丝街推销他们公司的产品。螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户。螺丝街一共有NN家住户,第ii家住户到入口的距离为S_iSi​米。由于同一栋房子里可以有多家住户,所以可能有多家住户与入口的距离相等。阿明会从入口进入, 阅读全文
posted @ 2019-08-25 16:49 _sheldon 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 基本思想 根据任意正整数都可以被关于2的不重复次幂的唯一分解性质,若一个正整数x被分为10101,其中等于1的位是0,2,4,所以x可以被分解为2^4 + 2 ^ 2 + 2 ^ 0,进一步,区间为[1, x]的序列可以分成log(x)个小区间: 1 长度为2 ^ 4的[1, 2 ^ 4]; 2长度 阅读全文
posted @ 2019-08-25 11:18 _sheldon 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 无向图的割点和桥 定义 割点:删除这个点时图将不再连通 割边:删除这条便时图将不再连通 时间戳 在图的深度优先搜索中的顺序(第几个被访问) 搜索树 在深搜时形成的树 图一为一张无向连通图,中间的为起点,红边为“发生递归”的边 图二就是搜索树了,编号为时间戳 追溯值 追溯值为low[],low[x]表 阅读全文
posted @ 2019-08-24 16:34 _sheldon 阅读(505) 评论(0) 推荐(0) 编辑
摘要: Description 给定n个点 其中p个点可以被贿赂, 被贿赂的金额为x,如果一个点被贿赂,他所指向的点也会被贿赂 求:如果不能全部被贿赂 输出NO以及不能被贿赂的点 否则输出YES和需要支付的金额的最小值 Solution 我们可以通过tarjan缩点,最后扫一遍dfn,若果有一个点并没有被访 阅读全文
posted @ 2019-08-24 09:48 _sheldon 阅读(206) 评论(0) 推荐(0) 编辑