牛客小白月赛20
第一次出正式比赛的题目,感谢大家参加这场比赛,比心.jpg,对题目有任何疑问欢迎牛客私信我。
std在题解的最后。
By Keven
A、斐波那契
B、最大边长
固定边长的长方形里面放入三个变成相等的正方形,只有两种放***使正方形边长最大
C、球的表面积
首先,判断两个球的位置关系,若内含,直接输出最大的球的表面积,若相离,直接输出两个球的表面积和。
我们已知 ,由三角形和余弦定理,可以求出 和 的值,由三角形Abo中 ,我们可以求出,由于球缺曲面的表面积公式是,就可以得出球o失去的表面积,同理,可以得出球o’失去的表面积,用两个球的表面积之和减去两个球失去的表面积就可以得到两球相交之后的表面积。
D、3的倍数
由于n的范围较小,所以直接枚举所有情况就可以了。
E、区区区间
题面暗示线段树
考虑第一个操作,将区间设置为等差数列,若区间需要更新,我们可以在O(1) 的时间求出当前区间的左端点的值,并在 O(1) 的时间求出当前区间的和(等差数列前N项和),考虑重复更新,我们只需要设置一个懒惰标记为当前区间左端点的值,在重复更新的时候,覆盖之前的懒惰标记就可以了。
考虑第二个操作,在第一个操作的同时维护一个区间和就可以了。
F、进制转换
G、快乐风男
H、好点
题目说明了不存在横坐标相等或纵坐标相等的点,所以显然纵坐标最大的点一定是“好点”,我们考虑将所有点按照纵坐标降序,横坐标降序的方法排序,那么第一个点一定是“好点”,依次遍历剩下的所有点,若当前的点的横坐标大于上一个“好点”,那么这个点也一定是“好点”。(横坐标大于上一个“好点”,说明纵坐标大于它的点都在它的左边,由于我们是按照横坐标排序,并且这个点横坐标大于上一个“好点“,所以,横坐标和它相等的点,必定不在它的右边)
I、小小小马
简单思维,若 并且 不同时为 ,都是可以走遍全图的。
注意特判 的情况。
当然,考虑到小白月赛,所以大家如果不想思维的话bfs也可以通过本题。
J、dh的帽子
这题就是一个裸的数位dp,如果你不会数位dp可以先去学一下。
一般来说数位dp都有一个上界,可以方便剪枝。这道题还需要判断下界,同样也是用于剪枝。首先转换成二进制可以方便计算。递归的时候每一个数多加一种状态ismin判断数与下界的关系,三重for循环枚举三个数字当前数位的情况取0或者1,如果前面的数位与下界完全相同,那么当前数位只能取大于或等于下界当前数位,否则当前数位就可以任取。然每次判断每一位是否满足 ,如果满足就继续下一位。不满足就跳出。
K、签到
std: