====计算几何====
「已注销」
这个作者很懒,什么都没留下…
展开
-
poj 1873The Fortified Forest (凸包 二进制枚举)
注意:一共n位,所以i从1枚举到 (1<#include <iostream>#include <cmath>#include <cstdio>#include <string.h>#include <algorithm>#define pi acos(-1)#define eps 1e-8using namespace std;struct point{ double x,y原创 2017-07-12 14:28:25 · 235 阅读 · 0 评论 -
HDU 6080 度度熊保护村庄 (叉积判断点线关系+图论)
思路:暴力枚举度娘的点,判断是否所有的要保护的点都在左边(或者都在右边,一样的)。如果都在左边,那么建一条i到j的边。坑:我到现在也不太明白为啥三点共线也可以。然而本题确实是:保护的点和ij在一条直线上,而且这个点在ij之间,那么这也算保护住了。优化:floyd的时候不优化会t。#include<stdio.h>#include <iostream>#include<string.h>#inc原创 2017-08-12 13:18:04 · 394 阅读 · 0 评论 -
HDU 6127 Hard challenge(极角排序+模拟)
思路:从x轴这条直线逆时针扫一遍,对于每个点的改变我们可以o(1)的算出改变后的value,所以整体o(n)。小技巧?我是把第三象限的映射到了第一象限,第四象限映射到了第二象限做的,因为在扫的过程中会同时影响这两个象限的点,但是对于不同象限的点,所改变的集合不同,所以这么考虑。坑点:注意用long lont int; double的话,会迷之误差1。wa到死。#include<iostream>原创 2017-08-16 10:21:18 · 220 阅读 · 0 评论 -
51Nod - 1265 四点共面 (叉积判断)
思路:a[1] a[2] a[3] a[4] 为四个点。 a1a2和a1a3所构成的面的法向量:point fa = ( a[2] - a[1] ) x ( a[3] - a[1] ); 注意在通过三阶矩阵算法向量的时候,j的前边要乘一个负号。。我就是好久没学线代把矩阵的解法都忘了。。#include <iostream>#include <cmath>#include <cstdio>#原创 2017-07-12 21:15:46 · 346 阅读 · 0 评论 -
HDU 5858 Hard problem (几何)
思路:做辅助线,推公式。 图中红线的三角形的三边已知,所以相关的角度可以得到,所以通过求扇形面积可以得到s1和s2的面积,答案也就得到了。AC代码:#include <iostream>#include <cstdio>#include <cmath>#define pi acos(-1)using namespace std;int main(){ int t; cin>原创 2016-08-19 21:33:01 · 81 阅读 · 0 评论 -
FZU 2270 Two Triangles (计算几何)
注意:注意判断三点共线注意三角形的判定,对称的不计。注意判别重合状态,防止计数计多了。#include<cstdio>#include<cstring>#include<algorithm>#include <cmath>#define eps 1e-6typedef long long int lli;using namespace std;struct node{ i原创 2017-07-18 20:47:40 · 729 阅读 · 0 评论 -
poj 2653 Pick-up sticks (线段相交)
提示:(小)剪枝,每次用队列来优化,如果之前的被覆盖了,那么不在放进队里,最后统计队里残余的线段。代码:#include <iostream>#include <cstdio>#include <algorithm>#include <string.h>#include <queue>using namespace std;struct point { double x,y;};原创 2017-07-13 09:22:37 · 171 阅读 · 0 评论 -
fzu acm 1015 土地划分 (线段相交)
坑点:注意特殊情况:当次条线段和之前的线段的端点连接的时候 所产生的交点不会增加块的数量#include <iostream>#include <cstdio>#include <algorithm>#include <string.h>using namespace std;struct point { double x; double y;};struct line{原创 2017-07-12 21:03:14 · 382 阅读 · 0 评论 -
HDU 1086 You can Solve a Geometry Problem too (判断线段相交)
You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9956 Accepted Submission(s): 4929Problem Description原创 2016-07-26 11:09:03 · 399 阅读 · 0 评论 -
HDU 6055 Regular polygon (计算几何 + 国家队论文结论)
坑点:注意给的都是整数根据2017的国家队论文(杨景钦的),可知只有正方形满足点的坐标为整数,所以只考虑正方形n^2的枚举两个点 然后判断对应的两个点是否存在。 注意左边映射,不仅需要把原来负的坐标映射成正的,还需要为可能的坐标判断留下空间,所以是+100+200;#include<iostream>#include<cstdio>#include <queue>#include<cs原创 2017-07-28 18:50:42 · 343 阅读 · 0 评论