2023牛客寒假算法基础集训营

 

2023牛客寒假算法基础集训营1

A

suma,sumb记录一下ab当前拿了多少分,计算一下resa,resb表示还剩几场(最多还能拿多少分),那么不影响比赛结果等价于suma>sumb+resb||suma+resa<sumb,a大于b全赢或者a全赢小于b

代码查看 (nowcoder.com)

L

如果在第一个团,猜的次数是1,在第二个是2,在第三个是3,在第四个和第五个是4,所以猜团体期望2.8。

如果是第一个人猜的次数是1,在第二个是2,在第三个和在第四个是3,所以猜第几个人期望2.25。

综上,期望次数是5.05,要输出的i满足3.45+0.05*i=5.05,所以输出32。

代码查看 (nowcoder.com)

C

可以发现答案小于等于非零数字数量,如果我每个人分配一个论文,那么答案是非零数字数量,所以最优解就是每个人分配一个论文,输出非零数字数量即可。

代码查看 (nowcoder.com)

H

理解题意之后可以发现,总花费一定是10*n*n,通过n*n-1个拼图就可以知道最后一个拼图的面积。

代码查看 (nowcoder.com)

D

P点和(0,0)和(x,y)构成的矩形的位置情况有四种,通过大胆猜测和GeoGebra 3D画图可以发现让相交面积取最大的话精确度最大,所以大胆模拟。

代码查看 (nowcoder.com)

K

竟然可以贪心,我算了算dp可以之后就不去想贪心了。

考虑状压dp,f[i][j][k]表示到第i位,用了j个1,后两位的状态是k的最少坏区间数量,00对应k=0,01对应k=1,10对应k=2,11对应k=3,然后转移一下,最后输出min(min(f[n][0][0],f[n][0][1]),min(f[n][0][2],f[n][0][3]))。复杂度8nm。

代码查看 (nowcoder.com)

M

大胆dp一下,f[i][j]表示第i个人,剩余j个仙贝能获得的最大{好感度之和},那么f[i][j-k]=max(f[i][j-k],f[i-1][j]+k/j。最后输出f[n][0]因为仙贝最后手里一个也不剩总是最好的。

代码查看 (nowcoder.com)

G

经典的问题。注意到x的范围是[0,1e9],f(x)=round(10√x)最多做11次就会收敛于100或99或0,所以考虑把还没收敛的下标扔到set里面。对于每次修改操作,看看set里有没有区间[l,r]里的下标,如果有的话拿出来做k次操作或者f(x)==x的时候停止,再检查一下如果f(x)==x的话就把它erase掉。询问操作就太简单了,当前数组所有数字的和,用一个long long记录即可。复杂度是n*11*logn+mlogn。

代码查看 (nowcoder.com)

 F

众所周知,如果一个连通块里有cnt个节点,那么选一个起点一个终点的方案数是cnt*cnt。

如果不需要放炸蛋,那么答案是所有连通块的cnt*cnt之和。

如果只有一个连通块需要放炸蛋,那么答案是这个连通块里的cnt*cnt,因为是无向边构造的连通块,所以肯定存在一个路走遍这个连通块里的所有点,然后在这个路最后一次到达某个点时,如果需要下蛋就下蛋,这样并不会影响移动。

如果有多个连通块需要放炸蛋,那么答案是0,因为不存在合法方案。

代码查看 (nowcoder.com)

E

理解题意后,可以发现断言使用第三次操作当且仅当两个铁丝不一样长,并且叉积的方向不一样。

代码查看 (nowcoder.com)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章