Day -6(3.4)
晚上打了场AtCoder,$rank 1515$,切了5题,信心++。
打T5的时候心态不稳,没验证好复杂度就交了,错了7次,下次注意。
Day -5(3.5)
早上8点多就回校了,假期减了一天。
上午模拟赛,考得不好,pts和rk就不说了,信心–。
T1
签到题,枚举两个相同字母的位置,计算把这两个字母之间其他的字母扔出去的交换代价,在交换代价合规情况下找最大可能的连续相同字母大小。
T2
DP,分成五种情况讨论,$f[i][0]$表示当前位置为'0’,$f[i][1]$表示当前位置为’*’,$f[i][2]$表示当前位置为'2’,$f[i][3]$表示当前位置为'1’左边有地雷,$f[i][4]$表示当前位置为'1’右边有地雷。然后讨论各种情况的状态转移。
T3
一种神奇的题目,先在原序列中把每个连续上升子串内部标记成同一编号,然后讨论几种可能的修改情况:1)在该子串前方或后方修改一个,使其长度+1。2)如果两个连续子串之间可以通过修改前一个子串合并,那就合并。3)修改后一个子串。
T4
需要推一推,具体如下:
首先求平均数在$[l,r]$等价于求平均数在$[1,l)$和$[1,r]$的数量,后者减去前者即为答案。
以区间$[i,j]$的平均数为例,如果平均数需要满足这个性质,那么每个数减去$r$后求和的值必须$\leq 0$。
即为$a[i]-r+a[i+1]-r+……+a[i+j-1]-r \leq 0$.
设$b[i]=a[i]-r$,则$b[i]+b[i+1]+……+b[i+j-1] \leq 0$.
容易联想到前缀和,设$s[i]=\Sigma_{j \leq i} b[j]$,可得$s[i+k-1]-s[i-1] \leq 0$,即$s[i+k-1] \leq s[i-1]$.
发现$i-1 \leq i+k-1$,所以求逆序对。
Day -4(3.6)
开始停课,第一次全天停。
上午提高难度模拟赛,$160 pts$ $rank 1$,感觉良好,信心++。
改题可以看DengDuck's blog
T1
官方题解:
其实只需要简单地证明一下,分析几种情况:
- 两个序列$1$的个数相同,但是顺序不同。例如:$101$和$110$。 最后一位不一样,而$1$的个数相同,这就意味着其他位置必定还有一个数位不同,所以对$2$取模为$0$。
- 两个序列$1$的个数不同,例如:$001$和$110$。 这时候我们去掉第二个数列的一个$1$,并把第一个数列该位置的数也去掉,就变为了上一种情况, 再加上一个不一样的,就变成了上一种情况,所以对$2$取模为$1$。
- 其他的可以以此类推扩展,具体看上面官方题解。
T2
官方题解:
还有一个写的不错的题解:这里
个人思路
这里的斜边其实都对应了两条直角边,所以只要枚举出两条直角边的长度(以下用$a$、$b$表示)就可以得出这条斜边的长度。
再分析发现这条边上可供选择的点有$\gcd(a,b)-1$个(可以使用相似三角形证明,题解中此处有误),而我们需要从中选择$n-2$个点(两个端点强制选),而相邻两个点的距离至少为$k$,所以得到$C_{g+1-2k-(n-3)(k-1)}^{n-2}$(在$n$个点中选出$m$个点,并且两个点之间间隔至少为$k$的方案数为$C_{n-(m-1)k}^{m}$)。
T3
关于T4
它超纲了。
期待周五ing。
Day -3(3.7)
停课的第二天,还是提高难度模拟赛。
本来:全部人$rank 5$,初二$rank 1$。
因为计算错误和该死的Windows系统变成了:全部人$rank 9$,初二$rank 3$。
信心–。
T1
期望简单题,可能需要点感性理解,继续挂上DengDuckの题解
T2
其实是$3n+1$猜想(角谷猜想)的运用,知道了之后就简单多了,但是还要注意负数的情况。
T3,T4
待学习。
另外放上本地测试时遇到的神奇测试点:
生地会考报名收走了身份证,这个问题不解决了有待解决。
Day -2(3.8)
成功躲过了月考
今日の教训:
$$ 我们不是数学竞赛\\ 很多时候快速找到正解已经很不错了\\ 不一定需要证明\\ 打表都是可以的\\ 实在不行再跑一些暴力验证一下\\ 一定要灵活\\ $$T1
一道简单$DP$,设$f[i][j][0/1]$表示前$i$个数里使用了$j$次修改,$0$表示当前不是山谷,$1$表示当前是山谷。
如果当前本来是山谷,那么转移如下:
$f[i][j][0]=f[i-1][j][1]$
$f[i][j][1]=f[i-1][j][0]+a[i]$
如果不是那么可以修改成山谷,转移如下:
$f[i][j][0]=max(f[i-1][j][0],f[i-1][j][1])$
$f[i][j][1]=f[i-1][j-1][0]+min(a[i-1],a[i+1])-1$
T2
手推一下可以得到以下结论:
当$n=3$时,答案为$a[1]-a[3]$。
当$n=5$时,答案为$a[1]-2*a[3]+a[5]$。
当$n=7$时,答案为$a[1]-3a[3]+3a[5]-a[7]$。
可以发现奇数情况下,系数均与杨辉三角有关。
如果直接$n^2$递推会超时,而杨辉三角又与组合数有关,所以可以通过公式法求解。
偶数情况可以通过一次操作转化为奇数。
T3、T4
待学习。
Day -1(3.9)
复习了一整天,但是复习的东西好像都没用上……
Day 0(3.10)
上午还是复习,下午三点坐车去广州,广州市区很堵,快五点才到酒店,然后去学校报到。
晚上去看广州塔了,喝了教练请的饮料。
复习了一会,又看了会电视就睡觉了。
Day 1(3.11)
上午听讲座,讲了一些数据结构。
下午比赛。
先想了第一题,感觉还行,打了一下才发现不对劲,朴素做法时间会炸。
想了一会没想到,就开了第二题,很快想到了宽搜,直接打了一份代码。
开了第三题,感觉很难,打了个表就跳了。
第四题也不会,打了个暴力,水20分。
又回头看第一题,想到了和正解差不多的思路,但是没算好空间,以为开不下数组,最后打出来的代码挂了。
晚上和$DeepSeaSpray$一起复习,和昨天一样看了会电视就睡觉了。
Day 2(3.12)
上午听讲座,宣传了中大、学习到了乱搞思想。
然后就是令人激动的滚榜环节,发现自己前两题都挂了。
T1 | T2 | T3 | T4 | Total | |
---|---|---|---|---|---|
估分 | 50 | 100 | 0 | 20 | 170 |
实际 | 30 | 80 | 0 | 20 | 130 |
差距有点大……压到了银牌线。
下午Day2比赛。
第一题看了一眼,直接切了。
第二题打了个暴力水分。
第三题还是不会。
第四题没想清楚,赛场上以为很简单……
吃完晚饭就回校了。
Day 3(3.13)
晚上去看了分数。
T1 | T2 | T3 | T4 | Total | |
---|---|---|---|---|---|
估分 | 100 | 20 | 0 | 50 | 170 |
实际 | 100 | 20 | 0 | 30 | 150 |
还算不错,等排名,看看能不能保持住银牌。
总结与反思
总分$280$,全省排名$54$,拿下银牌。
下次要注意把问题分析清楚,还得计算好时间和空间复杂度,提升思维,争取更好的成绩。