摘要:
Sol 简单计算几何。 直接把四边形拆成两个三角形,枚举两侧最大的即可。 注意凹多边形,如果所有的点都在同侧,那么需要最大的减去最小的才行。 Code #include <bits/stdc++.h> #define x first #define y second #define pb push_ 阅读全文
posted @ 2025-03-10 17:11
incra
阅读(9)
评论(0)
推荐(0)
摘要:
Sol 如果两个点相邻,那么边权为 \(1\)。 如果两个点能通过一次操作来联通,此时这两个点一定满足 \(x\) 或者 \(y\) 的差小于等于 \(2\)(手摸一下就知道了),此时边权为 \(1\)。 其他情况边权就是 \(+\infty\)。 直接跑最短路,时间复杂度 \(O(k^2)\)。 阅读全文
posted @ 2025-03-10 17:10
incra
阅读(12)
评论(0)
推荐(0)
摘要:
Sol 注意到加数次数总共就很少,那么删数操作也同样很少,所以暴力删除即可。 考虑如何找到原数所在的下标,直接二分,找到第一个满足 \(i\) 减去 \(1\sim i\) 已经被删的数的数量等于 \(k\) 的下标就是第 \(k\) 个数实际的位置,可以用二分树状数组。 时间复杂度 \(O(n\l 阅读全文
posted @ 2025-03-10 17:09
incra
阅读(13)
评论(0)
推荐(0)
摘要:
Sol 不难想到暴力 DP,复杂度 \(O(tk^2)\),无法通过。 观察转移方程,注意到贡献到每个点的状态一定是连续的区间,那么用前缀和维护就好了。 偏移量可以设置的大一些以防 RE。 Code #include <bits/stdc++.h> #define x first #define y 阅读全文
posted @ 2025-03-10 17:06
incra
阅读(18)
评论(0)
推荐(0)
摘要:
Sol 很考验注意力啊。 注意限制是边权最大值,想到二分,对于能反向的边建双向边,否则建单向边,跑缩点后判断是否只有一个点没有入度,证明显然。 自己想出来的 *2200,很难得啊。 Code #include <bits/stdc++.h> #define x first #define y sec 阅读全文
posted @ 2025-03-10 17:05
incra
阅读(12)
评论(0)
推荐(0)

浙公网安备 33010602011771号