摘要: 任意线可以贪心移动到两点上。直接枚举O(n^3),会TLE。所以采取扫描法,选基准点,然后根据极角或者两两做叉积比较进行排排序,然后扫一遍就好了。旋转的时候在O(1)时间推出下一种情况,总复杂度为O(n^2logN)就可以过了。另外,本题有个很巧妙的技巧,就是一点等效与相反坐标的相反颜色的点。第一次... 阅读全文
posted @ 2015-07-31 23:46 陈瑞宇 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 摘要:贪心,问题分解。因为行列无关,所以这个二维问题可以分解成两个一维问题。优先队列实现:类似区间点覆盖的问题,先按照左端点排序,相同然后在按右端点排序(灵活性小的优先选)。最优的选法,当然是要使选的这个点经过的区间越少越好,那么就选最左边的点,因为选右边可能多经过区间,一定不比选最左边的更优。选完... 阅读全文
posted @ 2015-07-31 17:29 陈瑞宇 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 摘要:中途相遇。对比map,快排+二分查找,Hash效率。n是4000的级别,直接O(n^4)肯定超,所以中途相遇法,O(n^2)的时间枚举其中两个的和,O(n^2)的时间枚举其他两个的和的相反数,然后O(logN)的时间查询是否存在。首先试了下map,果断TLE//TLE#include#incl... 阅读全文
posted @ 2015-07-31 14:07 陈瑞宇 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 用(x,s)表示一个状态,x表示机器人的位置,s表示其他位置有没有物体。用个fa数组和act数组记录和打印路径,转移的时候判断一下是不是机器人在动。#includeusing namespace std;const int maxn = 16;const int maxe = 32;const in... 阅读全文
posted @ 2015-07-31 11:51 陈瑞宇 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 暴力,和八皇后很像,用表示i+j和i-j标记主对角线,但是还是要加一些的剪枝的。1.最裸的暴搜6.420s,差点超时2.之前位置放过的就没必要在放了,每次从上一次放的位置开始放0.400s#include#includeconst int maxn = 11;char G[maxn][maxn];i... 阅读全文
posted @ 2015-07-31 10:45 陈瑞宇 阅读(277) 评论(0) 推荐(0) 编辑