为什么 T1 被卡模数了?

本地跟暴力不同模数对拍了几万组都没有错,结果我选的模数还是被卡到了最低分(只有 5050,太玄学了),还没有暴力分(100100)高?


感觉这是时间很不够,T3 会正解,但是没有时间写了,T4 的部分分也没有写完。被 T1 和 T2 硬控了

8:30 读完题,开 T1。想了 1010 分钟,中间伪了一次,然后想到了正解。

9:00 T1 重构一遍之后过了大样例,开始对拍。由于我是取模了的,尝试用不同模数和暴力对拍,几万组之后发现没有问题,进入下一题。

9:10 开 T2,顺利拆分问题,但是由于复杂化,想了 3030 分钟,思路还是乱的,于是准备先写后面的暴力。

9:40 写 T3 暴力,好不容易调过了,n2n^2。

10:10 回到 T2,先花了 2020 分钟调整式子。
注意,这里需要明确一些 dp 的定义什么的,不然会炸。
然后花了 2020 分钟写了 O(n3)O(n^3),优化是类似前缀和的,花了差不多 3030 分钟写出来了。

11:30 开始做 T4,在读错两次题后写出了暴力和 1515 分一共 3535。

12:00 写出了 a=ba=b 的特殊性质,突然发现这道题正解其实很简单,但是我一直在写暴力,没时间了。


T1 挂了 5050,T3 倒挂了 55。

T1

题目概括

给定 nn 个整点,统计无序三点构成直角三角形的数量。
数据:3≤n≤20003\le n\le 2000,坐标 ∣x∣,∣y∣≤109|x|,|y|\le 10^9。

简直了,卡单取模。自己对拍几万组没有问题。其实应该两个不同模数的正解来对拍的...

T2

题目概括

对每个长为 nn、值域 [1,m][1,m] 的序列 aa,定义合法删除方案(剩余连续段长 ≤k≤k)的权值和 f(a)f(a),求所有序列的 f(a)f(a) 之和模 998244353998244353。
数据:n≤5000, m≤1018, k≤nn\le 5000,\ m\le 10^{18},\ k\le n。

绕来绕去,调来调去还是搞出来了。感觉问题是思路不够清晰,并且思考速度太慢了。

首先想 dp,每一次枚举 dp 一次,发现完全不可能,然后去思考容斥,发现完全不好做,此时回到 dp 发现可以一次预处理完。

既然想 dp,应该很明确状态,而不是乱改。应该想好了再写,特别是转移的含义,不然很容易炸。虽然当时绕来绕去心态已经炸了。

T3

题目概括

有根树,mm 条计划 (a,b,w)(a,b,w),对 x∈sub(a),y∈sub(b)x\in sub(a), y\in sub(b) 给 lca(x,y)\mathrm{lca}(x,y) 加 ww,求各点总能量模 109+710^9+7。
数据:n,m≤2×105, 0≤w<109+7n,m\le 2\times 10^5,\ 0\le w<10^9+7。

不应该一上来就写暴力的,当时觉得 T2 比较难,其实 T3 更简单,原本只是想写 T3 缓解一下爆炸的心态。

T4

题目概括

nn 道题,参数 ai,tia_i,t_i,总时长 TT。对每种“可见/不可见”分类,小B按顺序做题,累计时间≤TT 的题产生提交,得分为 ∏(ai+1)−1\prod (a_i+1)-1。求每个后缀所有分类方案得分之和模 998244353998244353。
数据:n≤200, T≤3×105, ai≤3×105, ti≤Tn\le 200,\ T\le 3\times 10^5,\ a_i\le 3\times 10^5,\ t_i\le T。

暴力分骗的不够啊,没时间了。

主要问题

时间分配

关于对拍,我认为可以之后有时间;了,或者做不出来题的时候再写,除非是很有必要的对拍。T1 的对拍写了跟没写一样,纯粹是因为看着大样例太小了才去写的,在时间不够的情况下有一点浪费脑子仍然清醒的时间,不如去检验模数。

关于需要推各种东西,多次优化的题目。比如 T2 这种组合并且带有数学的题目,我认为需要一步一步写纸上,需要保持思维清醒,做之前应该出去上个厕所。特别是 dp 的定义域转移的实际含义,不要写完代码再定义,不然会很难改。
仍然需要先写暴力验证正确性再优化,虽然消耗时间,但是这值得,是另一个维度上的节约时间。

关于取舍

一道题不应该一上来就写暴力,今天 T3 明显很水,写完特殊性质猛然发现其实正解很简单。

还有就是不要真死磕,磕一半还是先写 T4 的暴力吧,虽然 T3 可能会做,但是 T4 是几乎不可能能快速想到并且写完的。感觉确实先干一些别的事情,问一下心态,清空一下大脑是有助于思考的。(不然我 T2 可能就被自己绕进去了)。