
分块
z听歌的小孩z
这个作者很懒,什么都没留下…
展开
-
E. Cashback(dp+分块暴力查询区间最小值)
题目链接题意:给一段序列,你可以任意划分区间,每个区间去掉( k/m )个最小值,问怎样才能使这个序列值最小。k为划分的区间长度。题解:可以知道的是每m个元素就能去掉一个最小元素,所以可以使用分块或者数据结构来查询区间最小值。 dp[i]表示前i个元素能去掉的元素最大值。 然后给出状态转移方程:dp[i] = max(dp[i-1],dp[i...原创 2019-07-08 15:06:56 · 260 阅读 · 0 评论 -
分块(优雅的暴力) 学习博客。。。持续更新
学习参照以下三个博客:分块——优雅的暴力分块入门1~9分块数列入门1~9分块题目训练:1.逆序对——求区间最小值分块入门1:给出一个长为n的数列,以及n个操作,操作涉及区间加法,单点查值。//给定一个长为n的序列,以及n个操作,操作涉及区间加法,单点查值#include<bits/stdc++.h>using namespace std;con...原创 2019-07-05 14:46:29 · 3304 阅读 · 0 评论 -
D. 筱玛爱线段树 牛客练习赛49(分块做法)
题目链接首先如果你不会分块,请看这个博客里的两个推荐的博客戳我昨天学的分块今天就出题了,也太爽了吧(容我得瑟一会)题意:中文题目就不解释了。。。题解:对于第一个操作,区间更新,这个很简单,套线段树,树状数组,或者像我一样套分块就能很快更新了。 比较难处理的是第二个操作,因为他会重新执行一遍区间[l,r]的操作,而在这个区间内可能又存在另外的第二个操作,于是这个操作又要向前更新...原创 2019-07-05 21:49:17 · 189 阅读 · 0 评论 -
E. Anton and Permutation(分块)因为这个题入坑分块
题目链接题意:给你一段1~n的序列。q次操作,每次操作交换位置l,和位置r上的元素。问每次交换后当前序列的逆序对个数。题解:首先可以看出每次交换位置为l,r的数后,逆序对个数的变化只与(l,r)区间与val[l]和val[r]大小关系有关。 设Si表示区间(l,r)比val[i]小的数,Bi表示区间(l,r)比val[i]大的数。 未交换前,val[l]和val[r]在区间(l,r...原创 2019-07-12 16:47:47 · 380 阅读 · 0 评论