CSP-S。

100+50+100+10100+50+100+10,挂惨了。。。

  • T4 暴力有 3535,但是我把 <= 写成了 <。
  • T2 暴力有 6060,我特判写错了只有 5050。

大样例跟小样例一样大什么意思,暴力程序还需要写对拍吗?


整体来说,这套题除了 T4,都比较简单,而且代码量很小。

T3 感觉难度还没有 T2 高。

经历

7:30 起床发现昨天晚上做了一晚上梦,很离谱的。


8:25 开 T1,水题。

8:40 读 T2,没思路。感觉可以 nknk,有 dp 做法,但是转移会 TLETLE,只有 6060。

9:00 好困啊。

9:30 ?发生什么了?先去看 T3。

9:35 不就是容斥吗。

9:50 写完了,发现想错了,需要修改。推完式子,发现可以就用上面的修改,复杂度调和级数(可以搭配树状数组/ST表)。

10:05 暴力验证正确,去写。

10:06 出去上厕所。外面好暖和,感觉昨天着凉了。

10:20 写完了,T3<<<<<<<<<<T2。

10:25 不管了,先写 T2 暴力。

10:50 写完了,感觉有很多分。正解应给不是 dp,想不到。

11:00 写 T4 暴力。

11:30 写完了,并且乱搞,可以有很多分。

11:30-12:20 T2 T4 都想不到,不管了。


T2 竟然是 dp 优化?

T1

题目概括

有 n×mn\times m 的网格,初始全为 00。依次进行 qq 次操作:

  • (1,x,c)(1,x,c):将第 xx 行全部染成颜色 cc;
  • (2,x,c)(2,x,c):将第 xx 列全部染成颜色 cc。
    后操作覆盖先操作。最终统计每种颜色 cc 的格子数,按 cc 升序输出。

倒着做就行了。

T2

题目概括

两个篮子苹果数为 (a,b)(a,b),共 kk 次事件。每次事件前可将至多 mm 个苹果在两篮间移动;随后事件对两个篮子分别施加操作:

  • 00:不变;
  • 11:y↦⌊yx⌋y \mapsto \left\lfloor \dfrac{y}{x} \right\rfloor;
  • 22:y↦max⁡(y−x,0)y \mapsto \max(y-x,0)。
    求所有事件结束后两个篮子中苹果总数的最大值。

考场上想了 dp,发现只有 6060,然后就认为这道题应该是类似思维题的了...

其实想到 dp 应该去想优化,比如这道题状态数是对的,只需要优化转移,在目标的视角转移就行了。单调队列优化。

需要观察到我们 dp 的状态就决定了,第一个是确定的,我们只需要保证两个的和最大的转移过来就行了。

不知道为什么平时 dp 我都会想办法优化,这道题我甚至认为正解不是 dp。可能是它太像思维题了。

之后不敢了。

T3

题目概括

给定正整数序列 a1,a2,…,ana_1,a_2,\dots,a_n,统计满足以下条件的正整数序列 b1,b2,…,bnb_1,b_2,\dots,b_n 的数量:

  • 1≤bi≤ai1\le b_i\le a_i;
  • gcd⁡(b1,…,bn)=min⁡(b1,…,bn)\gcd(b_1,\dots,b_n)=\min(b_1,\dots,b_n)。
    答案对 998244353998244353 取模。

考场思路:

C++
可以容斥 
f[i] 表示最小值为 i 的 
g[i] 表示最小值是 i 的倍数的 

g[i] = \prod (a_j / i) 下取整 
这个式子怎么求 
调和级数 + 树状数组? 
枚举 a_j / i 的值 
配上快速幂 

。。。min 的条件好像没有满足? 

每一个还需要减去所有数是 b 的 >=2 倍,gcd 也是对的的情况 

才开始想错了,认为很简单,后面发现比我想的还简单。

用所有的 ii 的倍数的方案数,减去 ii 的 >=2>=2 倍数的方案数。

调和级数配上数据结构可以做到单 log⁡\log。

T4

题目概括

字符集为 Z3={0,1,2}\mathbb Z_3=\{0,1,2\}。给定长度为 nn 的字符串 ss,重复 KK 次得到序列 aa。支持两种操作:

  • 11:从左到右扫描 i=1,…,nK−1i=1,\dots,nK-1,若 ai−ai+1≡1(mod3)a_i-a_{i+1}\equiv 1\pmod 3,则交换 ai,ai+1a_i,a_{i+1};
  • 2 l r2\ l\ r:询问 al,…,ara_l,\dots,a_r 中 0,1,20,1,2 各出现多少次。

暴力,加上如果已经固定了就不管了,可以得 3535,但是我写挂了。

主要问题

精力

没睡好,考试补觉的感觉真好。

不失眠也会被梦...?

时间分配

其实还好,因为我代码一共才 66 k 左右,我这次考试没写什么代码能力题。

就是最后不知道该干什么,大样例太水了,暴力又没法对拍检测。。。

还有 dp 我没有继续优化是真的可惜,其实应该继续想下去的,不要排除思路太快。