随笔分类 - OJ————POJ
POJ 2546 Circular Area(两个圆相交的面积)
摘要:题目链接题意 : 给你两个圆的半径和圆心,让你求两个圆相交的面积大小。思路 : 分三种情况讨论假设半径小的圆为c1,半径大的圆为c2。c1的半径r1,圆心坐标(x1,y1)。c2的半径r2,圆心坐标(x2,y2)。d为两圆圆心连线的长度。相交面积为Sd=sqrt((x1-x2)^2+(y1-y2)^...
阅读全文
URAL 1183 Brackets Sequence(DP)
摘要:题目链接题意 : 给你一串由括号组成的串,让你添加最少的括号使该串匹配。思路 : 黑书上的DP。dp[i][j] = min{dp[i+1][j-1] (sh[i] == sh[j]),dp[i][k]+dp[k+1][j](i 2 #include 3 #include 4 5 using ...
阅读全文
POJ 3384 Feng Shui(半平面交向内推进求最远点对)
摘要:题目链接题意 : 两个圆能够覆盖的最大多边形面积的时候两个圆圆心的坐标是多少,两个圆必须在多边形内。思路 : 向内推进r,然后求多边形最远的两个点就是能覆盖的最大面积。#include #include #include #include using namespace std ; struct ...
阅读全文
POJ 3525 Most Distant Point from the Sea (半平面交向内推进+二分半径)
摘要:题目链接题意 : 给你一个多边形,问你里边能够盛的下的最大的圆的半径是多少。思路 :先二分半径r,半平面交向内推进r。模板题 1 #include 2 #include 3 #include 4 #include 5 const double eps = 1e-10 ; 6 ...
阅读全文
POJ 1279 Art Gallery(半平面交求多边形核的面积)
摘要:题目链接题意 : 求一个多边形的核的面积。思路 : 半平面交求多边形的核,然后在求面积即可。#include #include #include #include using namespace std ;struct node{ double x; double y ;} p[1510...
阅读全文
POJ 3130 How I Mathematician Wonder What You Are!(半平面交求多边形的核)
摘要:题目链接题意 : 给你一个多边形,问你该多边形中是否存在一个点使得该点与该多边形任意一点的连线都在多边形之内。思路 : 与3335一样,不过要注意方向变化一下。 1 #include 2 #include 3 #include 4 #include 5 6 using namespace ...
阅读全文
POJ 3335 Rotating Scoreboard(半平面交求多边形核)
摘要:题目链接题意 : 给你一个多边形,问你在多边形内部是否存在这样的点,使得这个点能够看到任何在多边形边界上的点。思路 : 半平面交求多边形内核。半平面交资料关于求多边形内核的算法什么是多边形的内核?它是平面简单多边形的核是该多边形内部的一个点集,该点集中任意一点与多边形边界上一点的连线都处于这个多边形...
阅读全文
POJ 1947 Rebuilding Roads(树形DP)
摘要:题目链接题意 : 给你一棵树,问你至少断掉几条边能够得到有p个点的子树。思路 : dp[i][j]代表的是以i为根的子树有j个节点。dp[u][i] =dp[u][j]+dp[son][i-j]-1,son是u的儿子节点。初始是将所有的儿子都断开,然后-1代表的是这个儿子我需要了,不断了。 1 #i...
阅读全文
POJ 1113 Wall(Graham求凸包周长)
摘要:题目链接题意 : 求凸包周长+一个完整的圆周长。因为走一圈,经过拐点时,所形成的扇形的内角和是360度,故一个完整的圆。思路 : 求出凸包来,然后加上圆的周长 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 const...
阅读全文
POJ 2007 Scrambled Polygon (简单极角排序)
摘要:题目链接题意 : 对输入的点极角排序思路 : 极角排序方法#include #include #include #include using namespace std;struct point{ double x,y;}p[50],pp;double cross(point a,point ...
阅读全文
POJ 1696 Space Ant (极角排序)
摘要:题目链接题意 :一只蚂蚁,只会向左转,现在给出平面上很多个点,求解一种走法,能使得蚂蚁能经过的点最多,每个顶点该蚂蚁只能经过一次,且所行走的路线不能发生交叉.思路 : 每次找的时候排一下序然后输出最外边的点就行了。极角排序是根据坐标系内每一个点与x轴所成的角,逆时针比较,。按照角度从小到大的方式排序...
阅读全文
POJ 2653 Pick-up sticks(线段相交)
摘要:题目链接题意 : 把每根棍往地上扔,找出最后在上面的棍,也就是说找出所有的没有别的棍子压在它的上面的棍子。思路 : 对于每根棍子,压在他上面的棍子一定是在它之后扔的棍子,所以在找的时候只要找它之后的线段是否与他相交即可。 1 //2653 2 #include 3 #include 4 #inc...
阅读全文
POJ 3304 Segments (直线与线段是否相交)
摘要:题目链接题意 : 能否找出一条直线使得所有给定的线段在该直线上的投影有一个公共点。思路 : 假设存在一条直线a使得所有线段在该直线上的投影有公共点,则必存在一条垂直于直线a的直线b,直线b与所有线段相交,所以问题又转变为是否存在一条直线与所在所有线段相交。假设这样的直线存在,则这一条直线可能与某一条...
阅读全文
POJ 1185 炮兵阵地 (状压DP)
摘要:题目链接题意 : 中文题不详述。思路 :状压DP,1表示该位置放炮弹,0表示不放。dp[i][j][k],代表第 i 行的状态为k时第i-1行的状态为 j 时放置的最大炮弹数。只是注意判断的时候不要互相攻击到就可以了,还要与地形相适应。 1 #include 2 #include 3 #incl...
阅读全文
POJ 3114 Countries in War(强联通分量+Tarjan)
摘要:题目链接题意 : 给你两个城市让你求最短距离,如果两个城市位于同一强连通分量中那距离为0.思路 :强连通分量缩点之后,求最短路。以前写过,总感觉记忆不深,这次自己敲完再写了一遍。 1 #include 2 #include 3 #include 4 #include 5 #incl...
阅读全文
POJ 1144 Network(Tarjan)
摘要:题目链接题意 : 找出割点个数。思路 : Tarjan缩点,u是割点的充要条件是:u要么是具有两个以上子女的深度优先生成树的根,要么不是根,而有一个子女v满足low[v]>=dfn[u]。 1 #include 2 #include 3 #include 4 #include 5 6 us...
阅读全文
POJ 3177 Redundant Paths(Tarjan)
摘要:题目链接题意 : 一个无向连通图,最少添加几条边使其成为一个边连通分量 。思路 :先用Tarjan缩点,缩点之后的图一定是一棵树,边连通度为1。然后找到所有叶子节点,即度数为1的节点的个数leaf,最后要添加的边的条数就是(leaf+1)/2 ; 1 // 3177 2 #include 3 #i...
阅读全文
POJ 1870 Bee Breeding(找规律)
摘要:题目链接题意 : 给你一个蜂巢状图形,让你找出两个点之间的距离。思路 : 在做这个题之前可以看一下2265,因为是一种题来着,规律就是我在2265里写的那样,然后就是求距离了,求距离的时候只需考虑两个点的坐标差值(x,y),把坐标差值分成四个项限,x>0且y>0,或x 2 #include 3 #...
阅读全文
POJ 2265 Bee Maja (找规律)
摘要:题目链接题意 : 给你两个蜂巢的编号,给你一个的编号让你输出在另外一个蜂巢中对应的编号。思路 : 先将蜂巢分层,第一层一个数,第二层6个数,第三层12个数…………然后用公式表示出第n层的最后一个数是多少,下图中竖着的是x坐标,斜着的是y坐标,往左横坐标+1,往右横坐标-1,以斜线为准往上纵坐标-1,...
阅读全文
POJ 3468 A Simple Problem with Integers(线段树)
摘要:题目链接题意 : 给你n个数,进行两种操作,第一种是将a到b上所有元素都加上c,第二种是查询a到b上所有元素之和输出。思路 : 线段树,以前写过博客,但是现在在重刷,风格改变,,所以重新写一篇。。。。 1 #include 2 #include 3 #include 4 #define LL ...
阅读全文