05 2022 档案

摘要:题目链接 每次给两个数l,r,要我们选一个x使得i=1kdist(l,x,r)的值最小。可以知道要让答案最小的话,x一定要刚好把l,r平均分在两边,如果不是平分的话,x就会向多的一侧移动,所以要我们求得就是中位数。 nbsp;emsp;中位数我 阅读全文 »
posted @ 2022-05-16 14:55 浅渊 阅读(21) 评论(0) 推荐(0) 编辑
摘要:题目大意:要我们对一段区间进行两种操作:1.区间加法,2.查询区间gcd。 看到有区间修改的操作,首先考虑用线段树,这样可以方便的维护区间修改的操作,但是区间gcd是会随着区间修改而时刻变化的,比如:区间为2,4,6,此时的区间gcd2,但是如果给这个区间的每 阅读全文 »
posted @ 2022-05-10 13:50 浅渊 阅读(165) 评论(0) 推荐(0) 编辑
摘要:题目链接 题目的大意是Ivan他一周的课表是已知的,用一串01串来表示一天的上课情况,1表示的这个时间段是有课的0表示的是没有课的。现在Ivan这一周可以翘k节课,求出来Ivan在学校的最短时间应该是多长。 因为每一天只有翘掉首尾的课是可以减少这一天对答案的贡献的,所以翘课的时候应该 阅读全文 »
posted @ 2022-05-07 22:56 浅渊 阅读(30) 评论(0) 推荐(0) 编辑
摘要:A. Odd Divisor 题意就是判断这个数是否有大于等于3的奇数因子。 考虑用二进制来表示一个数,可以举例去找规律。(110)2=(6)10(1000)2=(8)10, (1001)2=(9)10, 阅读全文 »
posted @ 2022-05-04 13:30 浅渊 阅读(18) 评论(0) 推荐(0) 编辑
摘要:题目链接 算是一个计数类的dp,首先我们先确定状态数有多少个,一个是字符串a现在匹配到了第几位,一个是字符串b现在匹配到了第几位,另一个就是我们现在分成了多少组从字符串a中挑选出一段子串。这三个状态是最直接的状态,还有另一个就是我们是否要选择当前的字符a[i]来进行匹配,这个只有 阅读全文 »
posted @ 2022-05-04 02:09 浅渊 阅读(32) 评论(0) 推荐(0) 编辑
摘要:题目链接 我们要在这个区间中选出任意多个非重叠的区间,使得选出来的区间总长度最长。我们可以从最左端的位置开始枚举,一直枚举到最远的位置,我们用dp[i]来表示从1开始以i结尾的这一段没有重叠区间的最长长度。我们可以发现,只要我们枚举的点是在上一个点的后面,那么前面的最远距离其实是固定的, 阅读全文 »
posted @ 2022-05-04 00:58 浅渊 阅读(50) 评论(0) 推荐(0) 编辑
摘要:题目链接 卡片只有四张,并且我们要知道使用完某张牌之后得到的积分,所以我们要去枚举所有的情况,因为牌的种类数比较少,所以我们可以开四维数组去暴力枚举所有的状态,并且在每一次从前一种状态走到下一个位置的时候,要及时更新,题目要求的是求出最大值这个属性,所以在转移的时候我们只需要去维护最大值这个性质就可 阅读全文 »
posted @ 2022-05-04 00:32 浅渊 阅读(27) 评论(0) 推荐(0) 编辑
摘要:题目链接 操作一就是很简单的单点修改。操作二求最大子段和是本题的重点。 最大子段和可能分布在这个节点的左儿子的最大子段和,要么是右儿子的最大子段和,要么是横跨两部分(左儿子的后缀加右儿子的前缀)。而当前节点的最大前缀是maxpre[ls],sum[ls]+pre[rs],最大后缀是 阅读全文 »
posted @ 2022-05-01 23:30 浅渊 阅读(45) 评论(0) 推荐(0) 编辑
摘要:题目链接 因为我们对区间进行异或的操作,如果我们考虑一个一个暴力的异或过去那肯定是会超时的。那么我就可以将二进制拆位,我们可以发现它的数据范围最大的是106也就是219次方左右的,我们可以把这每一位的二进制分别用一个线段树存下来,这样的话区间的异或操作就可以转化成所有数每一位的区 阅读全文 »
posted @ 2022-05-01 17:44 浅渊 阅读(24) 评论(0) 推荐(0) 编辑
摘要:题目链接 如果只是进行操作一的话,那就是很简单的操作每一次直接乘就好了,但是我们还要进行操作二:要把前某几次乘的数除掉,所以我们就需要把每一次乘的数都存储下来,且是按顺序的。我们可以想到用一个数组或者是vector来顺序存储。但是我们会发现,这样的话我们每一次输出的时候就需要把所有的数都乘起来那 阅读全文 »
posted @ 2022-05-01 00:24 浅渊 阅读(57) 评论(0) 推荐(0) 编辑

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