传送门 这个思路很妙诶->这里 以下为了方便,我把自信说成血量好了 虽然表面上看起来每一天有很多种选择,然而我们首先要保证的是不死,然后考虑不死的情况下最多能拿出多少天来进行其他操作.不死可以dp,最大伤害可以枚举 首先我们要保证不死.设$dp[i][j]$表示在第$i$天,血量为$j$时最多多少天不刷题,那么这个可以直接dp出来 我们设$D$为dp数组的最大值,即最多有多少天可以使用 在这$D$天里,我们只需要选3,4,5操作,剩下的就可以多退少补 我们假设两次怼大佬的情况分别为$(d1,f1…
P3723 [AH2017/HNOI2017]礼物 题目描述 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她.每个手环上各有 \(n\) 个装饰物,并且每个装饰物都有一定的亮度. 但是在她生日的前一天,我的室友突然发现他好像拿错了一个手环,而且已经没时间去更换它了!他只能使用一种特殊的方法,将其中一个手环中所有装饰物的亮度增加一个相同的自然数 \(c\)(即非负整数).并且由于这个手环是一个圆,可以以任意的角度旋转它,但是由于上面装饰物…
洛谷题面传送门 终于调出来这道题了,写篇题解( 首先碰到这样的题我们肯定要考虑每种操作会对树的形态产生怎样的影响: 插入操作:对于 BST 有一个性质是,当你插入一个节点时,其在 BST 上的父亲肯定是,你把 BST 中父亲按权值 sort 一遍排成一列后,在待插入的数的两侧的数对应的节点中,深度较大者.因此我们考虑用一个 set,将所有点的权值和编号压进去然后在里面 lower_bound 即可找出待插入点两侧的点. 单旋最小值:稍微画几个图即可发现,对于最小值代表的点 \(x\),如果 \(…
题面传送门 首先注意到这次行数与列数不同阶,列数只有 \(200\),而行数高达 \(5000\),因此可以考虑以行为下标建线段树,线段树上每个区间 \([l,r]\) 开一个 \(200\times 200\) 的数组 \(d_{i,j}\) 表示从 \((l,i)\) 到 \((r,j)\) 的最短路,合并暴力用类似 floyd 的方式进行转移,这样暴力时间复杂度是 \(RC^3+mC^2\log R+q\),空间复杂度 \(RC^2\),其中 \(m\) 为修改次数,一脸无法通过,而且 T…
传送门 发现保持自信和做其他事情互不干扰,可以直接做一次 $dp$ 求出最多能空出几天来怼大佬 然后就变成给你若干天,是否能怼死大佬,考虑求出所有的 天数和输出的嘲讽值集合,因为天数不多,嘲讽值增长很快 所以直接 $BFS$ + $map$ 去重就行了 不怼大佬或者只怼一次的情况容易计算,现在问题是怼两次的情况怎么搞 设两次怼的嘲讽值分别为 $fx,fy$,输出这些嘲讽值需要的天数分别为 $dx,dy$ 如果要怼死大佬,只要满足限制 $fx+fy<=C$,$C-fx-fy<=D-dx-dy$,…
题意 题目链接 Sol 题解好神仙啊qwq. 一般看到这种考虑最大值的贡献的题目不难想到单调数据结构 对于本题而言,我们可以预处理出每个位置左边第一个比他大的位置\(l_i\)以及右边第一个比他大的位置\(r_i\) 那么\((l_i, r_i)\)会产生\(p1\)的贡献 \([l_i + 1, i - 1]\)和\(r_i\)会产生\(p2\)的贡献 \([i + 1, r_i - 1]\)和\(l_i\)会产生\(p2\)的贡献 这样我们直接上区间加线段树就能统计到每个点的贡献了. 然后统…
题意 题目链接 Sol 这题好毒瘤啊.. 首先要观察到几个性质: 将最小值旋转到根相当于把右子树变为祖先的左子树,然后将原来的根变为当前最小值 上述操作对深度的影响相当于右子树不变,其他的位置-1 然后就可以做了,把询问离线之后离散化一下,建一棵权值线段树表示每个值对应的深度 同时用set维护出已经加入的值 每次先找到后继,看一下有没有左孩子,如果有的话说明前驱一定没有右孩子. 注意随时更新信息 复杂度\(O(nlogn)\) #include<bits/stdc++.h> #define P…
题面 传送门 题解 果然--扩展\(Lucas\)学了跟没学一样-- 我们先考虑\(a=b\)的情况,这种情况下每一个\(A\)胜的方案中\(A\)和\(B\)的所有位上一起取反一定是一个\(A\)败的方案,而平局的方案取反之后仍然是一个平局的方案.那么我们可以用总的方案数\(2^{a+b}\)减去平局的次数除以\(2\)就行了.平局的次数我们可以考虑枚举两边扔了多少次正面,那么答案就是 \[ans=\sum_{i=0}^n {n\choose i}^2={2n\choose n}\] 可以这么…
传送门 首先,两个数同时增加自然数值相当于只有其中一个数增加(此增加量可以小于0) 我们令$x$为当前的增加量,${a},{b}$分别为旋转后的两个数列,那么$$ans=\sum_{i=1}^n(a_i+x-b_i)^2$$ 然后把第$i$项提出来并展开,可得$$(a_i+x-b_i)^2=a_i^2+b_i^2+x^2+2xa_i-2xb_i-2a_ib_i$$ 那么答案就是$$ans=\sum_{i=1}^na_i^2+\sum_{i=1}^nb_i^2+nx^2+2x(\sum_{i=1}…
吴迪说他化学会考上十分钟就想出来了,太神了%%%不过我也十分钟 但是调了一个多小时啊大草 懒得人话翻译了,自己康吧: 我的室友(真的是室友吗?)最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她.每个手环上各有 \(n\) 个装饰物,并且每个装饰物都有一定的亮度. 但是在她生日的前一天,我的室友突然发现他好像拿错了一个手环,而且已经没时间去更换它了!他只能使用一种特殊的方法,将其中一个手环中所有装饰物的亮度增加一个相同的非负整数 \(c\).并且由…