Loading

广州市赛 游记

Day 1

在六中考。\(7:57\sim 12:27\)。

T1 第一眼给看懵了,似乎要平衡树,GZOI 这么难。哦操作是相互独立的那没事了,前缀和光速搞完,样例一遍过,然后试图使用 cmd 进行一个大样例的比对,发现这里的电脑似乎把 cmd 给锁了。监考员说用 powershell,但是这个十八码 powershell 无法使用 fc?研究了一会儿找不到问题,实在不行开了个 NOI Linux 进去用 diff,结果这个 diff 还要配参数,好不容易搞定了,监考员说使用 fc.exe ... 即可,结果 \(8:30\) 才测完这个大样例,心态猛猛爆炸。

看 T2,这也是能做的?感觉是个 dp 套 dp,但是 \(n\le 10^5\) 啊哥们。哦这个形式感觉很能拆贡献?拆一下嗯,发现这个最优化是假的,自底向上如果父亲没选就选上这条边。手玩发现边 \((u,v)\) 在这种方案下会被选中当且仅当 \(v\) 没有被子树中的点占用,并且 \(v\) 之前的儿子没有把 \(u\) 占用,\(u\) 子树外可以任选。子树内就是个 \(\mathrm{dp}\),子树外预处理 \(\prod (a+b)\) 即可。很快写完了,调了一些细节就过了大样例,此时是 9:50,优势在我。

发现 T3 有点困难。一直想到 10:10 都没有什么头猪,猛猛跳 T4。

诶这个 T4 有点东西。直接做感觉巨大困难,好像可以分治。分治之后只需要处理 \([mid+1,r]\leadsto [l,mid]\),形态可以刻画成 \(R\) 在右边蠕动,直到蠕动到一个可以直接跃迁到左边的点然后跳走,没有跃迁时可以用倍增优化。好像不太会处理这个跃迁。艰难蠕动了一下,发现了关键性质:对于一个右边的点 \(i\),能够使它跃迁的左端点 \(L\) 是一个前缀,用 \(p_i\) 表示 \(L\le p_i\) 时 \(i\) 可以进行跃迁。那么再记录 \(g_{k,i}\) 表示点 \(i\) 往左跳 \(2^k\) 步的点中 \(p_i\) 的最大值,那么能跳当且仅当 \(g_{k,i}<L\),那不是做完了吗。巨大高兴,两只 log 直接开写,比较好写但是调了一会儿,然后直接通过了大样例,最后一个点才跑了 1.3 秒。然后做了全场最正确的决定,自己手搓了一组极限数据,是 1 2 1 2 ... 形态的,然后发现挂了!发现是求 \(p_i\) 时把 \(\le\) 写成了 \(<\),改完过了。原来是出题人老牧师给的大样例中 \(a_i\) 全都不相同。

过完去上厕所,回来大概 11:20。继续想 T3,有了一点头猪,发现 \(R\) 个人夺冠等价于 \(n-R\) 个人一定无法夺冠,因为剩下的 \(R\) 个人可以自己调。那么直接不公开任何夺冠的人的信息。然后发现解的形态,就是 \(n-R\) 个人公布了一些分数,然后再公布一个人使得他偏序 \(n-R\) 个人。写了 \(O(n^2m^2)\) 暴力发现对完了。蠕动优化了一下,变成了 \(O(n^2m)\),此时是 12:10。怎么优化?好像可以前缀和,不对要存下集合,然后发现 \(n\le m\) 时这个复杂度就是根号的,\(m<n\) 时可以搞个前缀 map 做到根号老哥,但至少能多拿一些分,果断开写,12:15 开始蒸,结果显而易见的没有写完,这个 \(O(n^2m)\) 可能只有 30 分,悲伤。

估分:\(100+100+30+100=330\)。

upd:拉完了,T4 被猛猛卡成 \(50\) 分,T2 不知道为什么也挂了。\(100+48+35+50=233\)。

upd:T2 知道了,\(0\) 没有逆元。

Day 2

开题。这个 T1 也是题?不会。\(P\) 是质数有啥用?正推好像一定会炸,那就倒推,要在模 \(P\) 意义下对 \(x\) 开根,这不就是二次剩余吗,发现根的个数只能是 \(0,2\),在随机的情况下分支数量期望只有 \(4\),加了一个曼哈顿距离的剪枝,但是自己手搓了大样例跑了 8 秒。想到了正反一起搜的双向搜索,结果不知道在干什么把正向搜索的步数调到了 \(16\) 然后在小范围内搜,结果 \(3\times 3\) 的网格就跑不动了,以为假掉了,于是弃掉,估分 \(50\)。

T2 首先二分,发现按照 \(a_i-a_{i-1}>d\) 切开可以分成互相独立的段。任意长度 \(\ge 4\) 的子序列都是无意义的,因为可以拆成长度为 \(2\) 和 \(3\) 的子序列。发现其实 \((i,i+1)\) 是非常优秀的,如果段长是偶数那么这样分就可以了。但如果段长是奇数就要用到长度为 \(3\) 的,枚举一下 \((i,j,k)\)。但是如果一段内用到了不只一个长度为 \(3\) 的子序列怎么办?好像暂时不太会。继续跳 T3。

然后干了非常蠢的事,把 T3 的题面读错了,读成了每个人先删除一个数然后再尝试重排,对着这个错误的题面研究了半天,甚至把错题面的解法都基本搞定了,手玩样例,这样 4 4 2 怎么是先手必胜?在错误的题目理解下甚至已经把后手必胜策略都搓出来了,再读……我靠读错题了,对着错误的题面做了接近一个半小时,现在已经只剩下一个半小时了。发现正确的题面也不太好做,赶紧回去想 T2。

大胆猜测,如果有解一定可以只用一个长度为 \(3\) 的子序列。考虑证明这个东西,因为总长为奇数,一定有奇数个 \(3\),如果有 \(2k+1(k>1)\) 个,我们将 \(2k\) 个 \(3\) 直接拆掉换成长度为 \(2\) 的,这样限制一定不会变紧。那么需要分讨一下五段的合并,写完通过了大样例。

还有四十分钟,继续想 T1,脑子依然宕机,依然对着错误的正向搜索艰难蠕动,最后没有取得实质性进展。

估分:\(50+100+0+0=150\)。

实际:\(50+90+0+0=140\)。应该是 \(O(n^2\log V)\) 被卡常了。

posted @ 2026-09-12 19:03  STDJCY  阅读(12)  评论(0)    收藏  举报