「Log」2023.11.13 小记
NOIP Day -4
序幕
\(6:50\):准时到校,整理博客,先改题。
一直在 T,写个拍瞅一眼,发现判断边界的时候有问题,逻辑一塌糊涂,不知道当时咋写的。
八点半的时候终于过掉了第二分块。
\(\color{black}{P4117}\)
第二分块。
间幕 \(1\)
吃了个早饭就九点半了,准备开新题。
看了会题给我看困了,可能也是因为刚吃完饭,直接昏迷。
十点半苏醒,可能也是冷困的,什么时候我能冬眠啊。
在十一点出头明白了这题咋做,取了个饭小溜达一圈,回来先吃个饭。
午休完差不多一点了,开始打题。
感觉整个题体量还是很大的,实现方式稍微思考了一会,幸好这题给了 1G,不用考虑空间。
打到三点多开始调,发现细节有点问题,改动后一只小调整改到 WA On Test 10,发现询问数组开小了,开二倍就过了。
洛谷 RMJ 又炸了。
\(\color{black}{CF1535F}\)
首先 \(f(x, y)\) 是个诈骗函数,值只可能为 \(0, 1, 2, 1337\) 其中的一种,\(0, 2, 1337\) 都好求,只需要考虑 \(1\) 的贡献。
首先考虑将字符串按照构成分组,一组一组解决,组与组之间都是 \(1337\)。
对于一组,考虑一个串 \(s\),对于其一段极长有序段 \(l, r\),与它 LCP 大于等于 \(l - 1\),LCS 小于等于 \(r - 1\) 的串都可以构成函数值为 \(1\) 的贡献。
想到正反建 Trie 数,于是相当于求出符合 \(l1 \le dfn1_i \le r1 \land l2 \le dfn2_i \le r2\) 的 \(i\) 个数,将第一维限制拆成前缀然后直接二维数点即可。
间幕 \(2\)
吃个晚饭,休息一会准备接着写题,今天干脆把需要补的黑题补完好了。
\(\color{black}{CF1528E}\)
将问题转化一下,树的形态被简单限制,钦定一个点只有两个子节点进行树个数 DP,巨大分论即可。
\(\color{blueviolet}{CF1487G}\)
诈骗题,最多两个数字超出范围,打进两维状态,设一个胖 DP,稍微优化一下即可。
尾声
好累,回家什么也不想干,补补博客,准备睡觉。