华师菜鸟杯2020

A

考场模拟一天结果一看题解被暴力卡过去了

把每个蚂蚁爬到原点的时间扔队列里排序,队首蚂蚁拿完后加上往返一次的时间扔到队尾模拟

B

分种类前缀和

C

打个表可以发现,数字递增规律约是等差数列递增,但是遇到平方数会停止增加

\[x=\lfloor\sqrt{n}\rfloor\\ sum=(1+2+…+n)-(1^2+2^2+…+x^2)\\ sum=\frac{(1+n)n}{2}-\frac{x(x+1)(2x+1)}{6}\\ ans=sum*6 \]

D

\(4\)格等于跳两个\(2\)格,所以奇数都能跳到,偶数都跳不到

E

白给

F

假设全\(0\)往里填\(1\),首先不会连着放,不然没用,徒增字典序

所以除了题目给定的不能放\(1\)的位置,一个\(1\)的两侧也是不能放\(1\)的位置

除了边缘,每放一个\(1\)都会增加两点贡献

所以枚举最后一位放\(1\)或者不放\(1\),然后从右到左能放就放

G

一个炮塔两侧不满一整段的部分单独记录,只有\(2*m\)次操作

中间部分线段树记录

统计答案时找出数值最大的\(k\)段翻倍

H

反悔贪心,想到了没写出来

观察数据范围,\(n*\sum u_i\)只有\(1e6\),可以对每颗草单独处理

开两个堆,一个存前面多出来的,另一个存前面空缺的

以当前位置需要放入为例\(val_i=min(a*i,c*|j-i|-val_j)\)

其中\(val_j\)是曾经放入的多出的药草

这里关于\(c*|j-i|\)的处理,可以在堆中放入\(-val_j-c*j\),取出时加上\(c_i\)

I

不会,\(lyh\)聚聚出的数学题太毒了太难了

J

从前向后枚举

若是先见到大于当前位置的字符就直接挪过来,记录当前答案加之前挪动相等字符的答案

若是见到等于当前位置的字符就将字符挪过来,在后面继续寻找大于的字符

模拟题真是综合考研马力和清晰的思路

K

记录两个字符串相差多少个\(H\),再记录有多少位不同

每次改变可以减少\(1\)个不同,每次交换可以改变\(2\)个不同

先改变到\(H\)相等再交换

L

签到题,看清题目

posted @ 2021-10-06 16:31  lovelyred  阅读(48)  评论(0编辑  收藏  举报