比赛地址: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代码

——————————————————

感谢同学们的积极参与!