第六届东南大学短码竞赛 - 题解

admin 2019-05-21 13:34:38 2021-06-19 23:57:31

短码竞赛命题组

初赛

A. 垃圾表达式

本题是 Python 优势题,使用 eval(str) 可直接计算结果。Java 需要解析表达式内容;C/C++ 还需要自行编写高精度计算代码。

B. 垃圾可重集

本题是 C++ 优势题,使用参考资料中的 PB_DS 库即可轻松完成,其他语言需要手工编写带 size 扩展的平衡树。

C. 垃圾加密

本题是 Java 优势题,使用其 javax.cryptojava.util.Base64 库即可。其他语言需要手工编写相关代码。

D. 垃圾游戏

本题可对不同灯的亮灭状态设置节点进行 DFS,而直接按输入值的奇偶性进行讨论拥有更好效率。

E. 垃圾模拟

本题直接按照要求模拟即可,C 语言的代码相对较短。

决赛

A. 简单游戏

本题可对不同灯的亮灭状态到终局的期望步数设置数个未知数,根据期望的线性性列方程求解即可。

B. 简单加密

本题是 Python 优势题,使用 pow(a,b,c) 可直接计算结果。Java 的 BigInteger.modPow(a,b,c) 需要代码稍长;C/C++ 需要自行编写高精度计算与快速幂代码。

C. 简单积分

本题是 C++ 优势题,使用参考资料中的库函数即可轻松完成,其他语言需要手工编写 Simpson 积分代码。

D. 简单解密

本题是 Java 优势题,使用参考资料中的 javax.cryptojava.util.Base64 库即可。其他语言需要手工编写相关代码。

E. 简单判断

本题可枚举情况比较、排序后比较、判断和是否为 6、最大值是否为 3 等。目前命题组得出的最短代码是通过 Python 判断最大值是否为 3