20230822巴蜀暑期集训测试总结

T1

很艰难的一道题,当然是过程很艰难。开始想到了一个关于贪心的思路,觉得应该不会这么简单,又继续想别的方法。

过了一会只能回到贪心,推了一下式子,发现...好像贪不了,于是再次离开。

又过了一会,回来再推一次式子,发现之前推错了,好在终于找到了正确的方向。想到了合并,但是不知道合并后的权值怎么变,以为又错了,再再次离开。

又又过了一会,决定再想一想,然后发现合并后权值直接相加就可以,一口气码了出来。然后第三个大样例 G 了。

然后就盯着看,这道题如果在这里跳过的话绝对是不值得的,第二个大样例都过了,说明正确性没有问题,如果不把这点小问题调对是有概率一分没有的。

又又又过了一会,发现是删除堆的问题——用删除堆解决优先队列删除的问题,重载 < 的时候一定要把不同的元素完全区分,不然删除堆的顺序由于大小关系不明确有可能和原堆有些许不同。就比如队中一个元素包含 \(3\) 个数 \(a,b,c\),就算原堆的大小关系只需比较 \(b,c\),重载 < 时也要把 \(a\) 区分开以避免两数的 \(b,c\) 相同导致大小关系不明确造成再删除堆中顺序不同。(update in 《一些tricks》

T2

一道比较水的题,不正确的时间复杂度都能拿满(数据太弱),但我考场楞是把 \(5000\) 看成(有可能是潜意识认为)了 \(5e5\)。然后想了下,\(O(n^2)\) 过不去,跳!

这个正解的优化树形 \(dp\) 的思路非常有参考价值。如果状态设为 “\(u\) 的子树...” 不行,可以考虑按照 dfs 顺序 dp,状态就是 “dfs 遍历到 \(u\) 时当前...",然后依次让儿子继承当前 \(u\) 的 dp 数组,处理完再将此儿子的信息结合到 \(u\) 上。

T3

做到这里时间极其有限,但估计再多一会也不会想到那个点

复数乘为模长相乘,辐角相加,结果要为质数。如果将模长平方一下,就是两个整数相乘为质数平方,那么除 \(1,-1,i,-i\) 外只能是不超过 \(2\) 个数相乘。

不是很会证明时间复杂度,但感性理解应该是对的。

T4

诈骗题!!!

  1. 题意表述不清。考后看题解理解的题意。

  2. 数据范围 \(n\le100\),可这明明是 \(O(n)\) 的题!

  3. 在题面最后不明不白提了一句 NPC,误导考生。

唯一的思维难度就是将复制点想成增加经过次数限制。然后就是简单的找直径和模拟了。

posted @ 2023-08-22 21:19  牛肉爱吃dks  阅读(8)  评论(0编辑  收藏  举报