E. Imprecise Computer
题意
总共进行两轮比赛,每一轮比赛每一个单位要和其他所有单位以位置为基础进行比较。
比较规则
1 位置差大于1,位置靠后的胜
2 位置差等于1,随机胜负
给定每个位置两轮胜场差的绝对值,问是否可能出现给定的胜负情况
题解
显然位置差大于1的会在两轮比较后抵消,对胜场差没有贡献,所以仅需考虑与左右两个位置的胜负关系即可。
因此用两个初值为0的f,g标记,且一共数值只有012三种情况
如果是0的话,两轮比赛作用互相抵消,不需要改变
如果是1的话,说明与附近两个比较后为一轮一胜一负,另一轮两负或两胜,则两轮叠加可改变f,g其中之一的值,若有一则优先抹去1
如果是2的话,即为一轮两胜一轮两负,若此时f,g相同则矛盾,输出no,若不同则因为对前后点胜场差的绝对值无影响,不需要操作
按上述操作从头到尾扫一遍,最后若f,g都变为0则说明可行输出yes
G. Mobile Robot
题意
给定n个点的位置和一个距离d,移动这n个点使相邻点(值索引相差1的点)的距离变为d,求移动距离最大值的最小值。
题解
显然最后n个点的相对位置是确定的,不妨先假设其最终位置为1, 1 + d,…1 + (n - 1)d
在遍历计算每个点与上述最终位置的偏移量,得到偏移量的max和min,随后通过平移上述选择的最终位置可以同时给max和min一个相同的增量,即max变为max - x, min变为min - x,同时答案是要取max的最小值,则易得ans = (max - min)/ 2;
上述讨论的是最终这n个点递增的时候,同理可得这n个点递减时的一个ans
两者取min即为最终答案