牛客小白月赛53总结

2022/7/8 23:52:55

本文主要是介绍牛客小白月赛53总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

比赛地址

比赛情况

排名:20 / 1321
AC:5 / 6

总结

A

简单if

B

简单式子,可以发现相邻之间的 \(i^2\) 和 \((i+1)^2\) 可以互相抵消,最终式子为 \((n+1)^2-2\times n(n+1)+1\)

C

结构体排序

先判断长度,长度相等循环一遍寻找相同字母个数,那个什么 \(\times \frac{1}{|b|}\) 不用管,拿来迷惑人的

当时做题时在字典序那里卡了一下,字符数组转string直等就行

D

可以发现,每个 \(a_i\) 不是取1就是取 \(b_i\),中间那些数是没有意义的,然后dp.

\(dp_{i,0}\) 代表 \(a_i=1\),\(dp_{i,1}\) 代表 \(a_i=b_i\),转移直接从 \(dp_{i-1, 0}\) 和 \(dp_{i-1, 1}\) 转移过来,也就是 \(a_{i-1}\) 取1或 \(b_{i-1}\)

有个细节就是例如一个数取1,后面是 \(b_i\),差是 \(b_i-1\) 而不是 \(b_i\).

E

小模拟+分类讨论

从大往小考虑:

  1. 边长为6显然需要一整个
  2. 边长为5也需要一整个,但有11个格子剩下,留给边长为1
  3. 边长为4也需要一整个,剩下空可以给5个边长为2
  4. 边长为3的4个一棋盘,如果有多,多三个,边长为2多1,边长为1多5;多两个,边长为2多3,边长为1多6;多三个,边长为2多5,边长为1多7
  5. 考虑边长为2,先前有多的空间占了,如果还有多余空间化为边长为1的空间,如果少,9个边长为2一棋盘,最后还有多化为边长为1
  6. 边长为1的先占了之前的,然后如果不够36个一棋盘,向上取整

注意多测清空

F

没做出。

考场想法

先暴力dp,显然 \(dp_i=\sum_{j<i} dp_j+1(a_j\vee a_i=0)\)

然后 \(O(n^2)\),显然超时,暴力二进制容斥,然后不知为什么过不了



这篇关于牛客小白月赛53总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程