2020-2021 Winter Petrozavodsk Camp, UPC contest
链接
A | B | C | D | E | F | G | H | I | J | K | L |
---|---|---|---|---|---|---|---|---|---|---|---|
I. Interesting Scoring Systems
J. Joyful Numbers
K. Königsberg Bridges
签到题。
C. Cartesian MST
考虑如果按照正常的 MST 做法,一个维度上一条边会在另一维度的每张图中都加一遍。容易发现加入答案的次数就是另一维度此时的连通块数。并且这次操作之后当前维度会恰好少一个连通块。
直接按类似 Kruskal 的做法做即可。复杂度 。
L. Long Grid Covering
考虑大力压后两行建自动机,总共 种状态,把不合法状态去掉大约只有 种,直接转移即可。
题解给了一种人类智慧建自动机的做法。
复杂度 ,其中 是自动机大小。
E. Even intervals
看到 只有 还能离线,直接莫队。这样只需要支持往集合里加入/删除与求所有偶数位置之和。
直接权值线段树即可。复杂度 。
A. Adjacent Rooks
首先非常暴力地用 表示当前放了 , 位置在 , 位置在 ,有 个相邻差为 。
然后发现的一点是 的位置并不重要,只要知道是否相邻即可。
所以改成用 表示有 个相邻差为 , 在 不相邻/左边/右边。
按 的位置分类讨论即可。复杂度 。
F. Friendship Circles
直接暴力半平面交。如果一个点在答案中,那么其到原点中垂线向原点组成的半平面在最后的半平面交中。
考虑这里用斜率排序的做法有点恶心,可以反演之后求凸包。容易证明反演后凸包上的点一定对应是半平面交上的直线。
题解给了一个非常牛逼的转化:
容易发现最后圆经过原点一定比不经过优。那么考虑将这个圆反演,得到的是不包含原点的半平面。
根据圆反演的性质,圆内的点在半平面内。要求存在半平面只经过原点和某个特殊点 ,那么 反演后的点一定在凸包上。
直接对所有点圆反演后求凸包即可。复杂度 。
可以发现题解和半平面交的做法本质上是相同的。
D. Display of Springs
李超线段树板子题。
直接用李超线段树维护直线之间的关系即可。单次询问 。
B. Beautiful Permutation
人类智慧题。
Clovers 赛后搓出来的,根本不会做。
题解给了一个难以描述的牛逼构造。
本文来自博客园,作者:Flying2018,转载请注明原文链接:https://www.cnblogs.com/Flying2018/p/gym103098.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理