【题解】牛客网NOIP赛前集训营-普及组(第三场)

A十七边形
答案一定是r * r * ???的形式根据样例可以算出来答案是r * r * 3.07055416259080当然也可以用三角函数算。大概就是相似图形,或者是物理中的量纲分析。可以推断出面积和半径平方成正比。类比圆和正方形。


B首都
首先考虑一维的情况非常简单,答案就是中位数,然后如果n是偶数,那么中间的2个数字之间的数字都可以。对于二维的情况,如果是曼哈顿距离|x1 x2| + |y1 - y2|那么可以两个方向分别考虑。而这个是切比雪夫距离max(|x1 - x2|, |y1 - y2|)可以通过(x , y) -> (x + y, x - y)的方式,转化为曼哈顿距离。 然后这样会有一点小问题,就是如果两个方向上的中位数,奇偶性不同那么转换回去会出现0.5的情况比如数据40 00 11 01 1最优解是 0.5 0.5 不是整数。 这个时候就检查一下最优解最近的整点(横坐标 +- 0.5, 纵坐标 +- 0.5)然后另一个情况,就是有多解的情况相当于要求x+y在[L1, R1]区间内,x-y在 [L2, R2]区间内显然x+y和x-y奇偶性需要相同变成了数区间内,奇数的个数和偶数的个数。


C分则能成
注意到得分只和开始局面,结束局面有关刚开始n,最后如果是a[0], a[2], .., a[k]共k+1块的话收益一定是n*(n-1)/2 - a[0]*(a[0]-1)/2 - a[1]*(a[1]-1)/2 .. - a[k]*(a[k]-1)/2然后如果最后有k+1个数字那么最大的数字,和最小的数字,差至多是1。直接计算答案即可。


D戴德兰
首先完成任务一定是完成耗时短的。所以一定是完成耗时最短的一些任务。 按照修改后的题意,直接认为一共有c+d的时间即可。然后把所有任务排序,贪心即可。按照修改前的任务,那么选出的任务要满足如下条件:如果总和s > c+d,一定不可以如果总和s <= c 一定可以。设need = (s - c) * 2选出的 任务中,必须存在一个子集,这个子集的和在[need, 2 * d]之间。这个问题是一个01背包,结合bitset做一下就可以了。


std


全部评论

相关推荐

10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
AI牛可乐:哇,听起来你遇到了什么挑战呢!🐮牛可乐在这里,虽然小,但是勇敢又聪明,想听听你的具体情况哦!如果你愿意的话,可以点击我的头像给我私信,我们可以一起想办法应对挑战,好不好呀?🌟🎉
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-20 19:57
已编辑
某大厂 golang工程师 23.0k*16.0, 2k房补,年终大概率能拿到
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务