
=====计算几何=====
文章平均质量分 74
Qingo呀
老菜鸡。
展开
-
2019 ICPC 南京 K. Triangle (计算几何+推方程)
题链:https://nanti.jisuanke.com/t/42404题意:给你三角形的三个点,再给出一个端点,先判断端点是否在三角形的边上,如果在,求在三角形边上的另一个端点,使得两个端点连成的线段将三角形分成面积相等的两块。思路:设另一个端点的x,枚举它所在的边,那么根据y=kx+b,y也可以求出,端点为(x,kx+b)。两向量叉乘可以算面积,两向量如图所示,一个为pp=(px-x0,py-y0),另一个为(x-x0,kx+b-y0)。根据,叉乘公式,(x-x0)*pp.y-(k原创 2020-12-11 20:43:22 · 631 阅读 · 0 评论 -
POJ - 1556 The Doors(判断线段与线段相交模板+最短路)
链接:https://cn.vjudge.net/problem/POJ-1556题意:在一个10*10矩形内,有一些竖着的墙,问从(0,5)到(10,5)的最短距离。思路:由于墙的个数很少,把不是墙的线段存下来,再把不是墙的线段两端的点存下来。判断线段相交建图,跑最短路。#include <cstdio>#include <iostream>#inclu...原创 2019-08-22 21:34:07 · 140 阅读 · 0 评论 -
POJ - 2653 Pick-up sticks (线段与线段相交)
链接:https://cn.vjudge.net/problem/POJ-2653题意:按顺序放线段,后放的线段在上面,问在最上面的线段分别是什么?思路:直接枚举判断后面的线段是否和它相交即可,由于题目保证最上面的线段最多有1000个,所以每个最多找1000次,由于不是严格的1000次,所以时间复杂度没问题。#include <cstdio>#include <i...原创 2019-08-22 21:40:16 · 138 阅读 · 0 评论 -
POJ - 1066 Treasure Hunt(线段相交)
链接:https://cn.vjudge.net/problem/POJ-1066题意:100*100的矩形内有n条线段,给出一个点,问从矩形外面到该点最少要穿过几条线段?也就是从该点引一条向外的射线,最少与几条线段相交?思路:这条射线肯定过这n条线段的一个端点,枚举判断即可。#include <cstdio>#include <iostream>#inc...原创 2019-08-22 21:47:02 · 174 阅读 · 0 评论 -
POJ - 1410 Intersection (线段是否与矩形相交 或 被覆盖 模板)
链接:https://cn.vjudge.net/problem/POJ-1410题意:判断一条线段是否与矩形相交或被覆盖。思路:直接判断线段是否与矩形相交,再特判线段是否在矩形内即可。(坑点,说是给左上和右下的坐标,但要你自己确定。)外加kuangbin大神的模板#include <cstdio>#include <iostream>#include &...原创 2019-08-22 21:59:56 · 217 阅读 · 0 评论 -
POJ - 1696 Space Ant (极角排序)
链接:https://cn.vjudge.net/problem/POJ-1696题意:给出n个点,问逆时针走路线不想相交且经过最多点的路线。思路:一定可以走n个点,每次以他为中心做极角排序即可。极角排序应该就是按相对角的大小排序。#include <cstdio>#include <iostream>#include <cmath>#inc...原创 2019-08-22 22:08:35 · 164 阅读 · 0 评论 -
POJ - 1228 Grandpa's Estate (稳定凸包+求凸包模板)
链接:https://cn.vjudge.net/problem/POJ-1228题意:给出n个点,问这n个点组成的凸包,是否为稳定凸包?思路:先说一下稳定凸包。稳定凸包就是这个凸包已经是一个极大凸包,不能通过加点再得到一个更大的凸包。怎么判断凸包是否稳定呢?如果一个凸包的的每个边至少有3个点,那么这个凸包是稳定的。这就要求,求凸包的时候把共线点也求出来。有图链接:https://ww...原创 2019-08-27 10:02:31 · 172 阅读 · 0 评论 -
POJ - 3608 Bridge Across Islands(凸包+旋转卡壳模板 求两凸包点之间的最近距离)
链接:https://cn.vjudge.net/problem/POJ-3608题意:求两凸包点之间的最近距离,注意这个意思是说,如果求点到线段的距离,那么要保证垂足落到线段上。思路:枚举一个凸包的边,去找另一凸包中的最远点,和求在一个凸包中的对踵点差不多。PS:本想自己整理个模板,发现还是kuangbin大大的模板好用。#include <cstdio>#inc...原创 2019-08-27 10:15:46 · 234 阅读 · 0 评论 -
POJ - 3335 Rotating Scoreboard (半平面交模板)
链接:https://cn.vjudge.net/problem/POJ-3335题意:判断直线的半平面交是否有核。(也是判断一个不规则多边形内部是否存在一个区域,可以看到多边形的全貌。)思路:半平面交板子题,这里存个模板,都是存的边,最后求交点。个人倾向于第一个板子,更易理解些。1.#include <cstdio>#include <iostream>...原创 2019-08-27 10:33:33 · 192 阅读 · 0 评论 -
POJ - 2451 Uyuw's Concert(半平面交求核面积)
链接:https://cn.vjudge.net/problem/POJ-2451题意:半平面交求核面积。思路:板子题,也是存板子。两个板子,思想一样,实现略微不同。1.#include <cstdio>#include <iostream>#include <cmath>#include <algorithm>#defin...原创 2019-08-27 10:37:20 · 169 阅读 · 0 评论 -
凸包/旋转卡壳/半平面交学习总结
1.凸包参考博客:https://blog.youkuaiyun.com/qq_34374664/article/details/70149223定义:假设平面上有若干个点,过某些点作一个多边形,使这个多边形能把所有点都“包”起来。当这个多边形是凸多边形的时候,我们就叫它“凸包”。求法:目前我只掌握了Graham扫描法,但我觉得够用了。步骤: 1.把所有点放在二维坐标系中,...原创 2019-08-27 11:19:56 · 561 阅读 · 0 评论 -
HDU - 5017 Ellipsoid (三分/模拟退火)
链接:https://cn.vjudge.net/problem/HDU-5017题意:给出一个椭球面,求椭球面上原点最近的距离。思路:首先,我们只需要考虑椭球的1/8(因为它关于原点对称。),然后,这1/8面上的点到原点的距离肯定是由远到近再到远,满足三分的性质,直接三分即可。也可模拟退火。1.三分#include<bits\stdc++.h>using name...原创 2019-08-27 21:05:07 · 260 阅读 · 4 评论 -
HDU - 3126 Nova(二分+最大流+计算几何)
链接:https://cn.vjudge.net/problem/HDU-3126题意:多组样例,n个巫师,m个敌人,k颗树。巫师有攻击距离和冷却时间,树有半径。若敌人在巫师的攻击范围外,或者巫师和敌人之间被树挡着,都不可攻击。问巫师消灭所有敌人的最少时间。思路:首先,巫师消灭敌人的个数和时间是成正比的,也就是说是单调的。这满足二分的要求,考虑二分枚举时间T,那么巫师(i)可以消灭敌人的个...原创 2019-08-28 22:27:36 · 184 阅读 · 0 评论 -
POJ - 1269 Intersecting Lines(判断两直线的位置情况模板)
链接:https://cn.vjudge.net/problem/POJ-1269题意:判断两条直线是重合、平行或相交,相交输出交点。思路:重合、平行的话,两直线上的向量叉积为0,重合的时候,找一个直线的端点和另一个直线的两端点形成的向量的叉积也为0。相交怎么求交点呢?好像用到什么数学定理,和面积相关,直接用就好了。#include <cstdio>#include &...原创 2019-08-22 21:21:37 · 144 阅读 · 0 评论 -
POJ - 3304 Segments(直线与线段相交)
链接:https://cn.vjudge.net/problem/POJ-3304题意:n条线段,问是否存在一条直线。n条线段在该直线的投影至少有一个公共点。思路:如果存在这样的直线,那么过某一公共点作该直线的垂线,这条垂线一定与n条线段都相交。所以,问题转化为是否有一条直线与这n条线段相交。显然,如果存在这样的直线,那么肯定可以经过两线段的端点画出一条这样的线。枚举这两个端点判断即可。判...原创 2019-08-21 22:16:23 · 267 阅读 · 1 评论 -
2019牛客暑期多校训练营(第五场)I three points 1(计算几何+思维)
链接:https://ac.nowcoder.com/acm/contest/885/I题意:T组样例,给你w、h、a、b、c。让你按顺序输出3个坐标X、Y、Z,其中X、Y的距离是a,X、Z的距离是b,Y、Z的距离是c。并且这3个点x坐标要在[0,w]之内,y坐标要在[0,h]之内。保证一定存在这样的3个点。思路:最优解就是把两个点固定在边上,其中一个固定在原点,另一个根据距离固定在边。这...原创 2019-08-03 11:04:31 · 255 阅读 · 0 评论 -
POJ - 3347 Kadj Squares (思维)
链接:https://cn.vjudge.net/problem/POJ-3347题意:给出n个正方形,把正方形按顺序放进第一象限中并且正方形的两底边与x轴成45度角。尽可能让正方形紧挨着放。问俯视时,最后哪几个正方形不会被完全遮挡。思路:如果所有边长都扩大倍,那么正方形的对角线也就是2倍的边长,这样就避免了精度问题。然后,每次放正方形(i)时,都遍历一遍前面放好的正方形(j)。计算i与j...原创 2019-08-24 20:26:44 · 163 阅读 · 0 评论 -
POJ - 3348 Cows (凸包+凸多边形面积)
链接:https://cn.vjudge.net/problem/POJ-3348题意:给出n个点。求把这n个点围起来的凸多边形的面积,然后除以50。思路:凸包裸题,凸包不严格的说就是把所有点围起来的凸多边形。怎么求呢?按最左下的点进行极角排序,然后把凸包中的点放进栈中。每次要放点时,判断一下是不是向左转,若向右转则把栈顶出栈。注意判断向左时,重合的情况。#include <c...原创 2019-08-24 20:40:51 · 208 阅读 · 0 评论 -
HDU-1392 Surround the Trees(凸包+周长)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1392题意:求凸包的周长。思路:凸包裸题。#include <cstdio>#include <iostream>#include <cmath>#include <algorithm>using namespace std;const...原创 2019-08-24 20:45:20 · 160 阅读 · 0 评论 -
POJ - 2826 An Easy Problem?! (线段与线段相交求交点模板+分类讨论)
链接:https://cn.vjudge.net/problem/POJ-2826题意:给你两个线段,问能接住多少从y轴正方向倒下来的水?思路:线段与线段相交求交点。具体可以看kaungbin大神的题解。https://www.cnblogs.com/kuangbin/p/3192511.html#include <cstdio>#include <iostrea...原创 2019-08-24 20:55:17 · 202 阅读 · 0 评论 -
POJ - 1584 A Round Peg in a Ground Hole (是否为凸多边形+点是否在多边形内+圆是否在多边形内)
链接:https://cn.vjudge.net/problem/POJ-1584题意:判断多边形是否为凸多边形以及圆是否在多边形内。思路:模板。详情看注释。#include <cstdio>#include <iostream>#include <cmath>#include <algorithm>using namespac...原创 2019-08-24 21:05:30 · 189 阅读 · 0 评论 -
HRBUST - 2047 Rescue The Princess(atan2的用法)
链接:https://cn.vjudge.net/problem/HRBUST-2047题意:T组样例。给出等边三角形A、B的坐标,求C的坐标,已知A、B、C按逆时针给出。思路:画画图就清楚了。已知直线斜率,求直线一x轴的夹角,可以用atan(x)函数,x代表是斜率,这个函数返回角度的范围为[-90,90];atan2](y,x)代表的事直线上向量的y值和x值,这个函数返回角度的范围为[-...原创 2019-08-20 19:52:38 · 183 阅读 · 0 评论 -
atan和atan2用法
https://blog.youkuaiyun.com/mmk27_word/article/details/83308836原创 2019-08-20 19:57:32 · 9492 阅读 · 0 评论 -
POJ - 2187 Beauty Contest (求距离最远点对-凸包+旋转卡壳/枚举 (旋转卡壳学习))
链接:https://vjudge.net/problem/POJ-2187题意:求求距离最远点对。思路:肯定为凸包上的点,可枚举,也可根据凸包性质旋转卡壳求对踵点。参考博客:https://www.cnblogs.com/xdruid/archive/2012/07/01/2572303.htmlhttps://blog.youkuaiyun.com/ACMaker/article/de...原创 2019-08-25 21:42:15 · 159 阅读 · 0 评论 -
POJ - 2074 Line of Sight (基础计算几何+巧妙处理+直线与线段交点)
链接:https://vjudge.net/problem/POJ-2074题意:站在一条线段上,去看另一条线段,有一些障碍物挡着视线,求最长连续区间可以看另一条线段的全貌。思路:把每条线段挡住的区间求出来,然后遍历一遍更新答案即可。#include <cstdio>#include <iostream>#include <cmath>#in...原创 2019-08-25 21:50:13 · 463 阅读 · 0 评论 -
POJ - 2318 TOYS (水平射线与线段相交)
链接:https://cn.vjudge.net/problem/POJ-2318题意:有一个矩形,n条线段(其两端点的y坐标确定)将矩形分为n+1块。m个点。对于每块区域,问有多少点在它之内。思路:从该点水平向左引一条射线,看看有多少相交的线段即可。#include <cstdio>#define ll long longconst int N = 5e3+10;...原创 2019-08-21 21:54:30 · 223 阅读 · 1 评论 -
POJ - 2398 Toy Storage(水平射线与线段相交)
链接:https://cn.vjudge.net/problem/POJ-2398题解:只需要排个序,其余和https://blog.youkuaiyun.com/birdmanqin/article/details/100000498相同。 #include <cstdio>#include <cstring>#include <iostream>#...原创 2019-08-21 22:01:08 · 178 阅读 · 0 评论 -
HDU 2036(求任意多边形的面积)
“ 改革春风吹满地,不会AC没关系;实在不行回老家,还有一亩三分地。谢谢!(乐队奏乐)”话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾里,而且,还竟然来这么几句打油诗。好呀,老师的责任就是帮你解决问题,既然想种田,那就分你一块。这块田位于浙江省温州市苍南县灵溪镇林家铺子村,多边形形状的一块地,原本是linle 的,现在就准备送给你了。不过,任何事情都没有那么...原创 2019-07-19 16:00:09 · 193 阅读 · 0 评论