摘要:
说起来 OI 退役多年,已经很久没有维护过这个博客。 不久前打完 ICPC 杭州站,也是大三赛季的最后一站,总觉得应该记一些什么……不止是记录我的 XCPC 生涯,也是给大学的前面快要 5 个学期做一个的总结吧~ 一切都还要从高考结束开始说起。 2021.6 高考 & 暑假篇 高考结束,估分给了自己 阅读全文
摘要:
首先考虑枚举lca的做法,对于每一个lca枚举其子树中所有节点,时间复杂度$O(n^2)$显然过不了 再思考发现这是一个针对子树的询问操作,考虑dsu on tree来统计答案 开一个新数组vec[x],其中x为权值,记录了所有权值为x的编号 那么只需要每次计算一颗新子树时,先累加答案,再更新vec 阅读全文
摘要:
莫队模板题... 不过树状数组也可以做...跟HH的项链几乎一模一样,离线询问,然后记录前缀,更新的时候把前缀删掉就好了,然而这题开long long,卡空间 阅读全文
摘要:
参考博文 (不过个人感觉我讲的稍微更清楚一点) 题目就是让我们求图中满足数值大于等于B的连通块数量 然后我们可以尝试转换为求连通块两端所产生的“谷”的数量,显然一个连通块对谷可以贡献2的答案,最终答案就是谷的数量除以2 (下图为查询$B_i$大小为4时的情况,每一个箭头代表一个谷) 发现每两个数中间 阅读全文
摘要:
无关:突然感觉之前的码风调代码不太方便,还是稍微改一下吧,毕竟现在竞赛的代码写出来还是要给自己看的... 这道题,显然确定了一个端点之后这个端点对应的区间和的最大值是定的,很容易想到用ST表维护一个前缀和最大值 然后再维护一个大根堆,记录每个合法最大值区间 在每一个状态时,堆顶元素一定是最优解,所以 阅读全文
摘要:
官方题解 看了题解才会做.. 首先考虑如果所有询问的点都是[1,n]的做法,如果询问是[l,r]只需要把多余的去掉就好了 然后要把问题转化为一个点对其他附近的点的贡献 记$pre[i]$为第i个位置的数字上一次出现的位置,记$nxt[i]$为第i个位置上的数字下一次出现的位置,显然这些东西都能扫一遍 阅读全文
摘要:
FHQTreap裸题... 用文艺平衡树的方法,维护区间和然后一直Push_Down就可以了(60行代码暴力AC) 阅读全文
摘要:
可以利用动态规划思想写出转移方程。 令$f_i$表示以i结尾时取得的最大值,$c_i$表示$a_i$这个数在第i个位置是第$c_i$次出现,则有: $$f_i=f_{j-1}+(c_i-c_j+1)^2*a_i$$ 不妨设j>k时从j转移比从i转移更优 则有: $$f_{j-1}+(c_i-c_j+ 阅读全文
摘要:
突然发现我可能单调队列都打不来了...我太菜了... 这道题显然有$$f[i][j]=min\{f[i-1][k]+\vert j-a[i] \vert\}$$ 则$ans=\sum_{i=1}^{m} b_i - min_{j=1}^{n}\{f[m][j]\}$ 令$len=(t[i]-t[i- 阅读全文
摘要:
显然要维护斜率区间单调递增 并且第一个必选,后一个比前一个选中的斜率大的必选 考虑如何合并两个区间 我们维护一个least值,least这个值必选,且之后选的都必须严格大于least,Push_Up的时候就像在线段树上二分一样做就好了 这样每次Push_Up是$logn$的,线段树单点修改时$log 阅读全文