2019-9-9做题记录

1、罗马游戏:

左偏树模板。

小根堆:合并选小的做根,记为$r1$,然后把$r2$合并到$r1$右边(原$r1$左边长,右边短),然后更新父亲,判断长度关系交换儿子,更新长度。

删除用$fhq_treap$的删除方式。

查找用并查集的方法,但是不带路径压缩。

2、棘手的操作:

联通块内最小值用左偏树维护,全局最小值用$multiset$维护。

3、城池攻占:

把所有的骑士一块处理,因为每一个骑士只会加入军团一次、死掉一次,所以如果我们只维护这些事件,复杂度是正确的,很容易想到左偏树。

注意到无论加一个数、还是乘一个正数,左偏树内(维护的集合)内的相对大小不变。所以我们可以通过打懒标记(类似$fhq_treap$)的方式维护加、乘。

到一个点时直接把小于防御值的骑士弹出左偏树宣告死亡,然后把还在左偏树里的元素打上修改懒标记即可,

维护懒标记要像$fhq_treap$那样$merge$,$pop$时$pushdown$。

4、【APIO2012】派遣:

选定管理者之后,选的点一定是这个子树里面,尽可能多。所以选小的,合并直接把超过预算的大的部分弹出左偏树即可。

5、Roads in Yusland

$aysn$给我推荐的神仙题,$yyb$也写了。结果想了很长时间都没有做出来。晤,果然我还是太弱了。

是一个带反悔的贪心操作。

从下至上考虑,对于每个点的父边,把不能到达这条边的链弹去,此时,堆中的元素都是可以覆盖到这条边的,我们找到一个权值最小的从下面上来的覆盖这条边的链,然后把它算到答案中去,并且把它自己和堆中存的链全都减去它的权值,意思是:万一有一天,发现一个比它更优的链,不仅可以完成把这条边覆盖,还可以把更上面的边覆盖,就把现在选的这条边去掉,选更优秀的。

要是知道了过程,正确性应该不难理解吧。

6、Dynamic Ranking

去年就会做的题,今天重写一下,就当复习了。

对于不带修改的情况:

如果序列长度为$n$,那我们需要$n$棵线段树,它们是对于值域建的,第$i$棵主席树代表数$a_1,a_2,...,a_i$形成的集合,在序列上,后一个等于在前一个的基础上挂一条链,这样查找的时候,我们只要关心第$r$棵和第$l-1$棵,在值域上二分,最后确定下点,这个过程中,两个数的指针是一起同向动的。

扩展到带修改的情况:

我们还是需要$n$棵线段树,但是第$i$棵主席树代表$a[i],a[i-lowbit(i)]...$形成的集合,建主席树的时候,就不存在一个是另一个的基础关系了,所以要把$a_i$插入到$i,i+lowbit(i)...$中,查找的时候,要确定组成前缀和最多的$log[l-1]+log[r]$个主席树的位置,直接在上面检查二分的值域是否合法,这些指针也是一起同向动的。

7、【BZOJ2588】Count On a Tree

在树链上找$k$大,我不知道怎么处理(以为要树链剖分),但是看了题解,才发现我是会的,这状态。。。发现和江苏的一道字符串题的套路是一样的。

$x$在$fa[x]$的基础上加上$x$的权值,找的时候确定四棵线段树,分别是$u,v,LCA(u,v),fa[LCA(u,v)]$,然后通过这些检验就可以了。

8、【BZOJ3123】森林

第7题的操作下带一个合并操作,那么直接启发式合并就行了。但是这是一个无根树,怎么启发式合并呢?

选一个维护联通块的$size$,然后让小联通块的接点的父亲是大联通块,这样每次只需要对小联通块内的每个点重建一条链即可。

9、【BZOJ3932】任务查询系统

一眼主席树,用扫描线的方法,每次只关心变化,处理询问直接在第$x$棵线段树上二分即可。

10、【BZOJ3295】动态逆序对

曾经被我用分块卡过去了,复杂度根号$log$里套根号,现在想想块的大小还可以更优。。。。

然后$aysn$写神仙主席树,把我$D$了,呜呜呜。

现在看看好像很水,带修改主席树,正难则反(正好像不是很难,但我习惯这种思维了),每次加入一个数,查前面有多少数比他大,后面有多少个数比他小,复杂度是两个$log$的。

11、【BZOJ4571】美味

按位考虑,把每次把查找的范围缩小在一个区间里。

原文地址:https://www.cnblogs.com/shxnb666/p/11495106.html

时间: 2024-10-08 20:46:01

2019-9-9做题记录的相关文章

【BZOJ做题记录】07.07~?

在NOI一周前重开一个坑 最后更新时间:7.07 11:26 7.06 下午做的几道CQOI题: BZOJ1257: [CQOI2007]余数之和sum:把k mod i写成k-k/i*i然后分段求后面的部分就好了 BZOJ1258: [CQOI2007]三角形tri:在草稿纸上按照位置和边找一下规律就好了 BZOJ1260: [CQOI2007]涂色paint:简单的区间DP BZOJ1303: [CQOI2009]中位数图:小于中位数的改为-1大于的改为1,算一算前缀和然后哈希一下乘一乘就好

project euler做题记录

ProjectEuler_做题记录 简单记录一下. problem 441 The inverse summation of coprime couples 神仙题.考虑答案为: \[\begin{array}{c} S(n) & = & \sum_{i = 1} ^ n \sum_{p = 1} ^ i \sum_{q = p + 1} ^ i \frac {1}{pq}[p + q \geq i][gcd(p, q) = 1] \& = & \sum_{i = 1} ^

退役前的做题记录5.0

退役前的做题记录5.0 出于某种原因新开了一篇. [CodeChef]Querying on a Grid 对序列建立分治结构,每次处理\((l,mid,r)\)时,以\(mid\)为源点建立最短路树,这样跨越\(mid\)的点对之间的最短路一定会经过\(mid\),因此两点之间的最短路径就可以描述成最短路树上的两段到根路径.对每棵最短路树处理\(dfs\)序,用树状数组维护权值修改即可. [Wannafly挑战赛4F]线路规划 类似SCOI2016萌萌哒一题,并查集\(f_{i,j}\)表示从

后缀自动机做题记录

目录 后缀自动机做题记录 sp1811 sp1812 sp10570 luogu 2463 CF873F TJOI2015 弦论 AHOI2013 差异 HEOI2016/TJOI2016 字符串 HAOI2016 找相同字符 SDOI2016 生成魔咒 ZJOI2015 诸神眷顾的幻想乡 留坑待填 广义SAM 其他 NOI原题练习 后缀自动机做题记录 来填之前的坑了...考后大概会做做有字符串的综合题吧 sp1811 lcs板子,对于第一个串建出SAM,第二个串在上面跑,即可求出对于每一个位置

清华集训2014 做题记录

清华集训2014做题记录 已完成 [清华集训2014]玛里苟斯 [清华集训2014]主旋律 [清华集训2014]奇数国 [清华集训2014]矩阵变换 [清华集训2014]sum [清华集训2014]虫逢 [清华集训2014]玄学 [清华集训2014]文学 未完成 [清华集训2014]卡常数 [清华集训2014]简单回路 [清华集训2014]Router [清华集训2014] Breaking Bomber 写一题要膜一题题解,膜完题解膜代码,膜完代码膜指导,膜了好几天了还有四个题没做. [清华集

2020年3月做题记录

[不定时更新,赶论文,赶项目,1月~2月做题记录还在整理,自我训练] 反转链表 链接:https://leetcode-cn.com/problems/reverse-linked-list/ 类名: 考察点:链表.迭代.递归 解题过程: 力扣3月每日1题,题解链接: https://leetcode-cn.com/problems/reverse-linked-list/solution/di-2ci-da-qia-lian-biao-fan-zhuan-di-gui-by-wu-xi-/ 就

Educational Codeforces Round 79做题记录

这套题感觉出的不咋滴,第四题和第五题难度差了1000分!!! 前四题都还简单,第五题就31人做出……我算了…… 懒得写题解了,做个记录吧(这就是偷懒的理由???) 比赛传送门 A.New Year Garland 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 #include <vector> 6 #define re

2020年3月底到4月第1周做题记录(力扣)

写在前面的话: 多看书,整完论文,deadline驱动,加油. 做题时间: 2020年3月30日~2020年4月5日 记录: 总共道题,时间为min. 最近更新时间: 202003230 圆圈中最后剩下的数字 链接: https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/ 类名: 考察点: 环.模拟 解题过程:力扣3月每日1题 题目的意思是用n个数字形成一个圆圈,数字范围为0到n-1,数

2019年2月做题记录

UVA10082 (字符串常量水题) UVA272 (字符串替换水题) UVA401 (回文串镜像串水题) UVA340 (模拟题) UVA1583 (打表水题) UVA1584 (暴力) UVA1585 (模拟) UVA1586 (数学) UVA1225 (打表水题) UVA455 (KMP算法) UVA232 (模拟+思维) UVA202 (除法高精度水题) UVA1587 (思维) UVA10340 (模拟,定序求交集) 原文地址:https://www.cnblogs.com/Aya-U

2019年7月做题记录

POJ3299 POJ2159 POJ2739 POJ1083 POJ2262 POJ1503 POJ3006 POJ3094 POJ2255 POJ2965 PPOJ1328 POJ2109 POJ2586 UVA227 UVA1368 UVA1589 UVA201 POJ3295 HDU2089 HDU4734 POJ3252 HDU6581 HDU6582 POJ2104 HDU6601 HDU6578 HDU6586 HDU6590 HDU6609 HDU6600 洛谷P1522 洛谷P