计算几何
HumveeA6
这个作者很懒,什么都没留下…
展开
-
Codeforces Educational Codeforces Round 41
A,B签到题略过。 C. Chessboard 其实这题的思路很简单,但是如果没想到的话还是挺难的….简单来说,我们并不需要去具体考虑4块中的每一块具体放在哪里——因为对每一块来说,他的最终状态只有两种可能,并且这个可能是由它的左上角的小方块的颜色决定的;那么我们其实只要计算出每一块转换为两种状况所需要重新染色的次数,然后显然左上角与右下角的块状况相同,另两块状态也相同,那我们在两种状况中选择...原创 2018-04-05 20:21:17 · 205 阅读 · 0 评论 -
POJ 1696
题目思路还是很巧妙的…题解可以看这个:https://blog.csdn.net/u013480600/article/details/40125055 总体而言就是一个类凸包的思路,但是不同点在于凸包只按初始的横坐标最小的点排一次极角序,然后对于后面每个点判断这个点是否在凸包上。而这里每次都把当前极角序最小的点加入答案,然后将后面的点按照这个点为初始点再排一次序。另外,此题找最初始点的时候根据...原创 2018-05-13 23:16:09 · 247 阅读 · 0 评论 -
POJ1066
题意:有一个100x100的正方形,其实也就是有四面墙围成的一个图形,正方形中间有一个点,也就是宝藏所在的位置,除此之外还有内墙,为你从外面到宝藏哪里,最少炸几面墙就可以到达 解析:枚举每一面内墙的起点和终点与宝藏连线,判断和几面内墙相交,除此之外还要枚举正方形的四个端点. 特别注意当判断了枚举的直线与线段相交以后要注意判断交点是否在线段上。 (似乎还有一种做法,bfs,先枚举线段所有的中...原创 2018-05-13 16:04:09 · 303 阅读 · 0 评论 -
POJ1556
解法大致如下: 注意一下加点的顺序即可,特别起点终点不要漏了。还有就是叉乘真的玄学…用了原先模板里的叉乘疯狂wa,换了一个就AC了QAQ… 似乎判断直线与线段相交的问题都要用这种叉乘…单存算两个向量的叉乘好像有点问题,问题暂时不明。#include <cstdio>#include <cmath>#include <algorithm>#i...原创 2018-05-12 20:08:16 · 592 阅读 · 0 评论 -
POJ3304
重点是叉积判断直线是否相交吧…不过wa了无数遍一直过不去…我也不知道为啥qwq… 抄了一份AC代码:/*Memory 200KTime 32MS */#include <iostream>#include <math.h>using namespace std;#define MAXM 110#define EPS 1e-8typede...原创 2018-05-11 19:44:44 · 508 阅读 · 0 评论 -
计算几何基础
文章的绝大部分内容参(chao)考(xi)自Menci菊苣的blog,放在这主要是为了自己参考,做了一点点自己比较适应的改动(其实是C++水平太低看不懂233) 原blog链接:https://oi.men.ci/geometry-notes/const double EPS=1e-10;bool dcmp(double x,double y=0){ return fab...原创 2018-05-05 00:12:56 · 339 阅读 · 0 评论 -
POJ2318&&POJ2398
主要利用叉积的一点性质;对于每个点暴力遍历所有的边即可; #include &lt;cstdio&gt;#include &lt;cmath&gt;#include &lt;algorithm&gt;#include &lt;vector&gt;#include&lt;iostream&gt;using namespace std原创 2018-05-10 19:59:33 · 215 阅读 · 0 评论 -
POJ3608(旋转卡壳求两个多边形最短距离)
不是特别会搞这个问题,大致思想跟凸包内部求最远点对类似。先抄一发留作模板233#include<stdio.h>#include<algorithm>#include<queue>#include<string.h>#include<iostream>#include<math.h>#include<...原创 2018-05-09 19:52:09 · 1115 阅读 · 0 评论 -
旋转卡壳算法
讲解见:http://www.cnblogs.com/Booble/archive/2011/04/03/2004865.html实现:(在原有求凸包的基础上增加即可)double cross(Pt a,Pt b,Pt c)//求叉积{ return (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x);}double dist2(Pt a,P...原创 2018-05-08 21:07:38 · 616 阅读 · 0 评论 -
POJ2826
一直在wa,搞来搞去也不知道为啥,先立个flag 6259 2664 8292 9080 1244 2972 9097 9680 答案是6162.65,一直在输出0… #include <cstdio>#include <cmath>#include <algorithm>#include <vector>#include<io...原创 2018-05-15 18:51:06 · 300 阅读 · 0 评论