
【算法】旋转坐标系
文章平均质量分 87
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ4723】【POI2017】Flappy Bird
【题目链接】点击打开链接【思路要点】首先,横纵坐标奇偶性不同的位置是小鸟无法到达的。然后,我们旋转坐标系,使得可到达的坐标\((x,y)\)变为\((x,\frac{x+y}{2})\)。如此,点击屏幕的结果是\((x+1,y+1)\),不点屏幕的结果是\((x+1,y)\)。维护一个可行的纵坐标区间,贪心即可。时间复杂度\(O(N)\)。【代码】#include<bits/stdc++.h...原创 2018-03-16 10:00:27 · 289 阅读 · 0 评论 -
【LOJ2586】「APIO2018」选圆圈
【题目链接】点击打开链接【思路要点】将坐标系以原点为中心旋转一定角度,对圆心建立KDTree。模拟题目中的过程,利用KDTree的子树信息进行剪枝。最坏时间复杂度\(O(N^2)\),期望时间复杂度\(O(NLogN)\)。【代码】/*Double Version, Faster but Lower in Precision*/#include<bits/stdc++.h>usin...原创 2018-05-23 10:43:53 · 767 阅读 · 0 评论 -
【BZOJ5328】【SDOI2018】物理实验
【题目链接】点击打开链接【思路要点】旋转、平移坐标系,使得直线导轨为X轴。注意到所有线段互不相交,且与X轴没有交点。对一二和三四象限的线段分别做一遍扫描线,求出每一段在X轴可见的线段到X轴的投影点以及其真实长度和投影长度的比值,并将一二和三四象限的结果合并。我们放置激光发射器的位置是无限多的,但投影点的个数是有限多的,并且我们发现一定有至少一个最优解满足激光发射器的某一个端点恰好为一个投影点。Tw...原创 2018-05-31 13:36:48 · 525 阅读 · 0 评论 -
【省内训练2019-06-04】团
【思路要点】旋转坐标系,将曼哈顿距离转化为切比雪夫距离。则我们需要求出一个包含尽可能多的点的正方形。枚举正方形的右边界,用双指针维护左边界,线段树维护其中包含点数最多的区间即可。时间复杂度 O(NLogN)O(NLogN)O(NLogN) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAX...原创 2019-06-07 11:53:27 · 196 阅读 · 0 评论 -
【LOJ3179】「IOI2019」视觉程序
【题目链接】点击打开链接【思路要点】考虑 K=1K=1K=1 的情况,我们需要判断是否存在相邻的黑色像素。如果我们知道两个黑色像素的相对方向,则可以采取如下策略:不妨令两个黑色像素在同一列,计算每一行的 ororor ,并计算得到的数组的前缀 ororor 与后缀 ororor ,记为 prei,sufipre_i,suf_iprei,sufi 。若存在一个 iii 使得...原创 2019-08-14 10:48:45 · 1694 阅读 · 0 评论