上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 27 下一页
摘要: 传送门 解题思路 其实很板子。 但是我因为一开始写麻烦了又懒得修改所以出现了bug调了一节课。。。 线段树里存区间max,lmax,rmax,sum,意义跟变量名一样。 深刻体会到了pushup里采用取地址符调用的重要性。 AC代码 #include<iostream> #include<cstdi 阅读全文
posted @ 2021-09-16 17:23 尹昱钦 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 逆序对升级版。 考虑每个逆序对对答案的贡献为多少。 假设这个逆序对的坐标为(i,j),则显然有i*(n-j+1)个区间包含这个逆序对,所以对答案的贡献就是i*(n-j+1)。 和以前一样用树状数组求逆序对,需要改动的地方是新加的节点不再是+1,而是+i。 估计ans最大可能在n^4 阅读全文
posted @ 2021-09-16 15:35 尹昱钦 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 首先很显然的一种O(nlogn)做法是st表:st[i][j][0/1/2]分别存从i开始向上走2^j步到达的节点编号/有没有H奶牛/有没有G奶牛。 代码量比较复杂。 还有一种很巧妙的做法是用top[i]表示i号点的奶牛种类从i向上最高可以到达的位置。 很显然假设读入询问的为x,y 阅读全文
posted @ 2021-09-16 14:56 尹昱钦 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 每次删边复杂度太高,所以可以倒序加边。 注意在对方占领后,这个点就不参与连通块数量的计算了。 AC代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> 阅读全文
posted @ 2021-09-16 11:10 尹昱钦 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 注意有个条件为ai互不相同。 尝试应用lxl教的套路: 第一步,将一维问题放到二维平面上:把好的配对(x,y)看做二维平面上的点。于是问题就变成了求出矩形所包含的点的个数。 第二步,利用数据结构将二维平面问题降到一维解决:离线,把询问按照右端点排序,同时把好的配对按照右端点排序,保 阅读全文
posted @ 2021-09-15 20:06 尹昱钦 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 首先判断false的情况:\(\max(a[i+1],a[j-1])>=a[j]\)。 而如果i+1到j之间有没有未知降雨量的年份,则答案是maybe。 否则答案即为true。 离散化放到ST表或线段树上操作一下就行了。 情况太多了细节太多了懒得在这里写了那就说一个吧 我们常常会说 阅读全文
posted @ 2021-09-15 14:56 尹昱钦 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 直接算逆元太麻烦。 可以用线段树维护区间乘积。 需要进行单点修改和查询整个区间的乘积。 每次1操作,就把当前点修改为m; 每次2操作,就把m点修改为1。 AC代码 #include<iostream> #include<cstdio> #include<cstring> #incl 阅读全文
posted @ 2021-09-15 11:42 尹昱钦 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 单点修改区间查询最大值。 lazy标记都不需要。 总范围为读入的m的范围。 注意有负值。 AC代码 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #in 阅读全文
posted @ 2021-09-15 10:29 尹昱钦 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 0.前言 谨以此记录oi生涯中最美好的时光,并以此自勉自督。 1.正文 九月 Day 1 早上终于等到了大帅(班主任)的谈话。 终于决定可以开始停课了。 虽然跟我想的有所出入(每个周要把课补上,不要落下),但还是很好啦。 快考试的时候不补课应该问题不大 完成了我的最后一项英语作业后,大约七点多来到了 阅读全文
posted @ 2021-09-15 09:39 尹昱钦 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 传送门 扫描线 什么是扫描线? 在一个二维平面上有许多的点,那一根水平或者竖直的直线将其切割。 用途? 降维。 可以把二维问题转变成一维处理。 解决许多数据结构问题。 lxl的重要思路:一维问题 >二维平面 >扫描线降维。 应用条件? 离线。 实现? 线段树或者树状数组。 树状数组常数比较小所以:区 阅读全文
posted @ 2021-09-15 09:32 尹昱钦 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 经典题的加强版。 根据数据范围得出需要O(n)解决这个问题。 至少要进行一次排序,而且数字<=1e5,所以很显然可以桶排。 然后用两个队列(注意不是优先队列),一个是存原数,一个存和。 每次取出两个队列中前二的两个数字,然后加起来放到第二个队列的队尾即可。 易证两个队列里面的数都满 阅读全文
posted @ 2021-09-14 21:54 尹昱钦 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 首先 \(t\) 可以直接算出来:\(t=\left \lceil \dfrac{n}{k} \right \rceil\) 我们从最朴素的 dp 开始想。 设 \(dp(i,j)\) 表示前 \(i\) 天,浏览了 \(j\) 个景点的最大评分。 那么转移方程为: \(dp(i, 阅读全文
posted @ 2021-09-14 21:19 尹昱钦 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 设dp[i][j]为吃掉派[i,j]的最大收益。 枚举中间点k进行转移,表示k这个派没被吃掉。 dp[i][j]=max(dp[i][k-1]+dp[k+1][j]+maxx[k][i][j]); 其中maxx[k][i][j]表示奶牛的喜欢吃的区间[l,r]符合i<=l<=k<= 阅读全文
posted @ 2021-09-13 20:27 尹昱钦 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 dp[i][j][k]表示从第i秒开始走走j秒从k工厂开始走的收益 maxx[i][j]表示从第i秒开始走j秒的最大收益。 则转移方程为: dp[i][j][k]=dp[i+1][j-1][(k+1)%n]+value[k][i]; maxx[i][j]=max(dp[i][j][ 阅读全文
posted @ 2021-09-13 19:15 尹昱钦 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 很经典的区间dp问题。 我们可以发现删除和添加本质上是一样的。 所以可以直接对删除费用和添加费用取min。 跑一遍区间dp即可。 注意在读入string时,不能一位一位读,会RE。 正确的处理方法是直接cin>>S,或者用char数组代替string。 AC代码 #include< 阅读全文
posted @ 2021-09-12 20:59 尹昱钦 阅读(37) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 27 下一页