牛客算法周周练1
A - Maximize The Beautiful Value
定义
定义
若将向前移动
位,那么新的答案
若将向前移动
位,那么新的答案
故有
因为题目中规定,可知
,故
也就是说,对于任意的,它向前移动的步数越少,所得到的结果越优;所以只需要枚举
,计算
向前移动
步的结果并取max即可。
Code:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43375997
B - 身体训练
定义为第
个人排第
位时,从最后一位跑到第一位需要的时间
那么有
一共有个排列使得第
个人排在第
位,即第
个人排在第
位的概率为
所以
Code:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43376128
C - Borrow Classroom
显然,何老师要么在SK去找小Q的路上截住SK,要么在小Q去教务处的路上截住小Q。
那么怎么判断何老师能否截住呢?
定义为点
到点
的路径。
定义为点
到点
的距离。
若何老师能截住SK:
何老师走的路径为,SK走的路径为
,设点
为这两条路径的交点。
那么,必有,因为两人的速度相同,若何老师在点
无法截住SK,那么之后也截不住。
若何老师能截住小Q:
何老师走的路径为,小Q走的路径为
,设点
为这两条路径的交点。
若,则必有
;
若,则必有
那么如何找点呢?实际上,对于
与
,它们的交点
必定是
、
、
中深度最大的一个,所以只要求几次
即可。
Code: https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43376570
D - 景区路线规划
定义表示当前游览完点
,剩余时间
,继续游览能获得的开心度的期望。
若有个点与点
相邻、游览时间+距离不超过
,那么
(这里
为满足条件的点、
为
到
的距离)。
设一超级源点,对
~
所有点连一条有向边
,边权设为
,然后记忆化搜索即可。
Code: https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43380072
E - 幸运数字Ⅱ
直接暴力打表(只需要打出项即可),然后利用表进行计算即可。
Code:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43375801