比赛地址:2023广师大训练赛3
A 成人礼
签到题。
我相信大部分人会去特判闰年,其实没必要。
如果是2月29号,那么此年必然是闰年。
而且,闰年再过18年,不可能再是闰年,所以直接输出-1即可。
C语言代码
C++代码
Java代码
Python代码
B 本命年
思维题。
每12年一次轮回,那么只需要推导出“取余12对应的年份”,即可直接输出。
C语言代码
C++代码
Java代码
Python代码
C 校验器
枚举题。
常规方法是按位比较。
for(i=0;i<32;i++)
if(n>>i&1)
++ans;
如果懂得一些函数,就更加方便了。
C语言代码
C++代码
Java代码
Python
D 时间轴
动态规划。
Levenshtein算法,编辑距离。
C语言代码
C++代码
Java代码
Python代码
F 静态表
前缀和。
直接遍历肯定会超时,使用前缀和算法优化,单次查询的复杂度为O(1) 。
C语言代码
C++代码
Java代码
Python代码
F 动情劫
树状数组 or 线段树。
前缀和只能静态维护一个数组的区间和。
如果需要动态维护,需要用到树状数组或者线段树,单次查询的复杂度为O(log(n))。
C语言代码
C++代码
Java代码
Python代码
——————————————————
感谢同学们的积极参与!