2022.08.27 模拟赛小结

题面

链接

(这个链接只是为了自己方便找,页面设置权限了,不要尝试访问)

更好的阅读体验戳此进入

(建议您从上方链接进入我的个人网站查看此 Blog,在 Luogu 中图片会被墙掉,部分 Markdown 也会失效)

赛时思路

T1

原题是 LOJ-535 「LibreOJ Round #6」花火 ,题意大概是一个序列,然后可以将其中任意两个值调换位置一次,然后再求逆序对个数。

只是求逆序对的话显然 O(nlogn) 随便过,但是加上这个调换位置确实是直接不会了,想了半天也没什么好的思路,最后只能想到枚举+树状数组 O(n3logn) 但是显然只能过 30%,然后写了两行之后就决定干脆 O(n4) 做得了,反正得分应该没区别,就没必要多浪费时间了。

然后呢和我预料的差不多,25pts,小点里有一个 WA 了,不知道是哪里寄掉了。

Code:

T2

原题是 HDU-7262 三角函数(为了方便就给个 vjudge 的链接吧),是一个欧几里得的题,或者说的更准确应该是个更相减损的题,有很多性质然后最后可以转化为更相减损,很考验思维。不过赛时雀食没推出来,用了一些乱搞的做法最终拿到了 10pts,(如果是 NOILinux 评测环境的话有可能会高一点,用到的 __float128 在 MinGW 里会失效)

然后还有一个特别 sb 的错误,我用 __float128 来让精度极高,然后判等的时候 eps 我直接设置的 1×105,直接导致精度太低然后让某些数经过很多次 arctan 计算后近似相等,我感觉甚至改成 1×1020 应该都行。

回到我的乱搞做法,观察发现输入数据只有两个数,而且部分分范围很低,所以考虑数据库思想自动生成一个大表,用一些奇怪的 BFS,(这题的状态用宽搜确实难搜,我最后用队列里套 pair 套 __float128 和 枚举类型的 vector ),或者迭代加深 DFS 似乎也行???

Build Code: (生成表用的程序)

T3

一个我感觉挺离谱的整体二分+树形 DP,思路奇奇怪怪,赛时我是没想出来,不过给的几个特殊性质点还是非常容易就能想到的。

然后考虑暴力我不会写不好写,所以想到了个很奇怪的贪心,大概就是考虑只删 dist 相同的一层,然后显然能删的数量和 dist 相同,排序之后找对应的第 dist 大的数,简而言之就是个很奇怪的乱搞(我都不知道怎么想到的),不过最后居然对了好几个点,直接 35pts。

Code:

T4

大概是做的最崩的一道题,首先写这题的时候人已经困傻了,大概梦游了 0.5~1.0h 然后开始写,最后开始写暴力,然后就是没写出来,感觉题意都没完全理解,所以最后无奈直接写了个输出 rand(),然后不出所料 0pts。

正解

T2

这题我挺喜欢,单独写一个 Blog 吧,戳此进入

T1

咕咕咕

T3

咕咕咕

T4

咕咕咕

UPD

update-2022_8_27 初稿