2022牛客寒假算法基础集训营2

这场感觉很迷

A

若攻击次数固定为\(a\)次,回复牌为\(b\)张,那么造成的最小伤害是攻,回,攻,回…,且回复牌够用(\(a<=b+1\)

最小伤害是\(\sum_{i=1}^{a}2*i-1=a^2\)

最大伤害是\(\sum_{i=1}^a(b+i)=ab+\frac{a(a+1)}{2}\)

那么如果攻击次数固定,就能覆盖\([a^2,ab+\frac{a(a+1)}{2}]\)内的所有数字

所以可以二分攻击次数

考虑合并区间,若对于攻击次数为\(a-1,a\)的两个区间,有

\((a-1)b+\frac{a(a-1)}{2}>=a^2-1\),则两个区间可以直接合并,且要有\(a<=b+1\)

观察会发现\(a>=4\)时都可以合并

所以只要特判\(b<=2\)的情况

B

如果一个权值较小的点和权值较大的点相连,那么权值较小的点是不用花费代价的

先把点按权值排序,然后按权值从小到大排序,如果能连到一个较大的点上就不用花代价了

C

能杀就杀是最优的

D

如果边长是\(3\)的倍数就无法完成,因为总格子数一定是\(3*k+1\)

边长模三余一的情况,可以试着让边界往里缩进\(6\)格,还是模三余一

边长模三余二的情况,先往里缩进\(4\)格变成情况一

E

最小值:

如果图上有环,会尽量走环,那么要使得图上尽可能没环,无环时会经过每个点各一次。答案是\(n-1\)

最大值:

一共有\(\frac{n(n-1)}{2}\)条边

可能把每条路都走一遍,也就是欧拉通路

要求起点的入度-出度=-1,终点的入度-出度=1,其他点的入度等于出度。

那么当\(n\)的奇数时,每个点和偶数个点相连,一定能满足所有点入度等于出度,形成欧拉回路。

\(n\)为偶数时,每个点和奇数个点相连,那么就有一半的点不能满足入度等于出度,但是最后可以多走一条边,所以是所有边数\(-\frac{n}{2}+1\)

F

用线段树过的

运算有优先级,每个\(+\)会分开一部分区间,区间之间互不影响,所以把每个区间里的信息整合成一个值。

G

写了个树剖,需要处理从左到右走和从右到左走。

其实树上差分就行了

H

\(m\)的某一位是\(1\),那么必然是\(n\)个数里面找一位赋值成\(1\)

所以答案是\(n^{m里1的数量}\)

I

大模拟

J

动态\(dp\),很麻

K

签到

L&M

按数字从小到大插入,然后求和

posted @ 2022-03-02 11:59  lovelyred  阅读(48)  评论(0)    收藏  举报