【题解】2019年湘潭大学新生趣味程序设计竞赛
A、 15 and 20
猜拳游戏的模拟
- 把四个数加起来,判断一下即可
B、 显示器
- 求给定比例的最大分辨率
- 直接求横纵的最小倍数,取最小的;
- 也可以枚举倍数
C、 Sequence
,已知
, 求
。
- 手工枚举一下,可以发现循环节长为
。
D、 Carrot
个奇数,
分成两个集合,使得集合累加和的差值最小
- 结论:
, 差值为
; 其他, 差值为
。
- 证明:
- 连续四个奇数为
分成两组
, 差值为
。所以,当
, 结果为
。
- 当
时, 我们把
以外的所有数按连续
个进行分组,差值为
,然后把
随便给某个集合,差值为
。由于
是奇数,所有奇数个奇数的和为奇数,所以分成两组,差值最小为
。所以,之前的构造为一个最小差值分组。
- 当
时,结果显然为
。其他
时,最小的
个数分为
和
, 差值为
。显然最后结果为
。
- 当
时,采用类似于第
步的构造和利用奇偶性,得到最小值为
。
- 连续四个奇数为
E、 Cuboid
- 长方体沿表面走对角的最短路径长度
- 结论
当
- 平面上,两点间直线最短
- 将长方体展开,很容易得到以上结论。
F、 Order
个订单,求完成时间的最小累加和
- 最优安排是按订单数从小到大安排生成
- 反证
- 假设一个最优安排中,存在
, 但是
。我们交换
和
的位置,得到一个新的安排。
- 显然对于
或者
的订单,这种交换没有影响。
- 对于
的订单,显然,其完成时间是小于或等于原有安排的。
- 矛盾
- 假设一个最优安排中,存在
G、 Ball
- 一个球,从左上角弹出,弹几库到右下角?
- 结论:
和
都为奇数时能弹到右下角,需要弹
库
H、 奇怪的回文子串
- 构造一个长度为
的字符串,要求其中最长回文子串的长度处于
之间,且出现各种字符的次数不超过给定的限制。
- 做法很多
- 先构造一个类似于
的回文串,长度为
。然后取其他字符填充成
的形式,然后再用这个子串按顺序填充成
长的字符串 (雷智凯)
- 先利用无限制字符,构造一个类似于
的串,然后随机产生后面的字符,要求随机出来的字符不超过限制,且不等于前
和前
个字符。 (谢勇)
- 先构造一个类似于
I、 Line
- 过矩形外一点画一条直线,分割矩形使得两边面积相等。
- 结论: 取矩形的中点 和 给定点 画一条直线 即为所求。
- 显然,由于对称性,所有过中点的直线必然平分矩形。
- 注意:中点坐标需要除
,可能为小数,为此先把坐标都乘
来处理。
J、 勾股定理
- 给一个整数
,求另外两个整数
和
,使其构成直角三角形
- 构造的方法也很多
- 不妨设
,所以
必须为奇数,解得
- 不妨设
,所以
必须为偶数,解得
K、 BAD String
- 交换一个串的两个字符以后,使得串不含
这个子串
- 构造方法也很多
- 统计
的数量
,显然每次交换最多破坏两个
子串,所以当
时无解
- 如果
, 交换成
- 如果
, 交换成
- 否则,随机交换两个字符,验证一下。
- 统计