最后两场比赛,每场都出了两道题,第一场的签到题错了两次,理解了题意直接暴力解决,中间出现了点问题,样例过了但一直wa,最后测试了一些自己的样例发现了问题,只注意到足够的天数完成目标,没有注意到万一不能满足足够天数的问题,后来倒着处理累计天数解决这个问题。第二道题目有点繁琐,是线段树题目,求一段区间内两个数相乘的最小值,因为两个数的位置可以相同,所以一开始的想法是求这个区间内的最小值,在进行的平方即可,但后来再读了一遍题目发现没那么就简单,数值可以为正也可以为负,所以不能在取区间内的最小值,取区间内的最大值和最小值,如果最大值最小值异号则输出最大值和最小值的乘积,如果同号,比较最大值和最小值的绝对值,绝对值小的取平方。思路没问题,求区间最大值与最小值用到线段树的模版,后来出了点小细节问题,最小值没有初始化为0,粗心啊。
今天比赛的两道题目是树状数组和线段树的题目,树状数组区间更新单点求值,第一道题目求一个最大值即可,很简单,树状数组模版题,但有一点我们没考虑到就是区间闭合的问题,对于更新区间值应该取前开后闭区间,后来好不容易发现问题。第二道题目就算第一道题目的拓展,开始想用二二维树状数组去做,但是空间太大,没法做,后来改用了线段树去做,以前看过一道类似的线段树的题目,借用了一下模版。
以后每天要固定时间来学习acm,每天都做点题目,在规定时间内完成任务,努力提升自己,期望明年这个时候自己还能参与acm的比赛,能有出线的实力。