自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 ZOJ 3777 Problem Arrangement .

题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3777#include #include #include #include using namespace std;#define REP(i,a,b) for(int i=a;i<(int)(b);++i)#define REPD(i,a,b)

2017-01-14 20:26:54 240

原创 平面直线图(PSLG)模板

来自LRJ类似卷包裹算法把每条边拆成两条半边(有向边),u->v和v->u,并且只取每条有向边的左边的区域思路就是从每个点出发(包括新产生的交点),沿着逆时针转的最多的一条边作为下一条边,直到回到起点,其左边围成的区域就是其中一个多边形遍历的方向如下:最外面的那个为无限面求沿着逆时针转的最多的一条边作为下一条边方法就是取反向边顺时针转动的第一条,这样子更加的方便

2017-01-14 09:34:40 1490

原创 LA 3218 Find the Border PSLG *

题目地址:https://vjudge.net/problem/UVALive-3218LRJ的算法看半天才懂,实际上是先遍历所有区域,然后其中一个面积为负的就是外轮廓其中边的遍历方向类似上图所示,只有外轮廓面积为负数#include using namespace std;#define REP(i,a,b) for(int i=a;i<(int)(b);++i)#d

2017-01-12 19:47:20 418

原创 LA 2797 Monster Trap 平面直线图(PSLG) -

题目地址:https://vjudge.net/problem/UVALive-2797有一个函数参数 Point p,一点要改成const Point& p 才对,不知道为什么#include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b) for(int

2017-01-10 11:38:58 373

原创 LA 4992 Jungle Outpost 半平面交 -

题目地址:https://vjudge.net/problem/UVALive-4992间隔一个点的所有线段连起来求半平面交,间隔两个点的所有线段连起来求半平面交,。。。直到刚好不存在半平面交,就是答案可以用二分来查找答案#include using namespace std;#define REP(i,a,b) for(int i=a;i<=(

2017-01-09 20:41:07 322

原创 LA 2218 Triathlon .

题目地址:https://vjudge.net/problem/UVALive-2218精度问题好恶心啊..... 最好的方法就是把特殊状况排除掉,尽量少算#include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b) for(int i=a;i>=(

2017-01-09 16:42:57 350

原创 LA 3890 Most Distant Point from the Sea 半平面交 .

题目地址:https://vjudge.net/problem/UVALive-3890#include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b) for(int i=a;i>=(int)(b);--i)const double PI=acos(-1);

2017-01-08 16:25:25 276

原创 半平面交的模板

网上看到个 把半平面交转化为求凸包的方法也即是把一条直线y=kx+b看成一个点(k,b)求凸包详细证明及其代码见:http://trinkle.blog.uoj.ac/blog/235#include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b) fo

2017-01-08 15:16:21 284

原创 旋转卡壳算法

点集的直径:指的是点集中最远点对的距离对踵点对:过该点对的两条平行线能把所有凸包夹在之间 D,G就是点对旋转卡壳: 射线j,k同时逆时针旋转θ角度,绕凸多边形一圈,他们两线之间的最大距离就是点集的直径 刘汝佳的算法如下:// 返回点集直径的平方int diameter2(vector<Point>& points) { vector<Point> p = ConvexHull(

2017-01-08 12:08:44 466

原创 LA 4728 Squares 凸包 .

题目地址:https://vjudge.net/problem/UVALive-4728最远的两点肯定是凸包上的点,所以先求凸包再枚举凸包上的两个点,更新最远的距离,这里用滑动窗口算法优化#include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b)

2017-01-08 10:48:31 229

原创 UVA 10256 The Great Divide 凸包 .

题目地址:https://vjudge.net/problem/UVA-10256#include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b) for(int i=a;i>=(int)(b);--i)const double PI=acos(-1);co

2017-01-07 22:01:33 307

原创 UVA 11168 Airport 凸包 .

题目地址:https://vjudge.net/problem/UVA-11168线是凸包上的相邻两点组成的线再每条线都枚举一下,求出最小值#include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b) for(int i=a;i>=(int)(b);

2017-01-07 20:11:13 294

原创 UVA 10652 Board Wrapping .

题目地址:https://vjudge.net/problem/UVA-10652模板题注意顺时针为正,并且输入的是度数而不是弧度值#include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b) for(int i=a;i>=(int)(b);--i)

2017-01-07 19:01:30 213

原创 Andrew算法求凸包

int ConvexHull(Point* p, int n, Point* ch){ //p是待凸包的点,ch是保存凸包的点 sort(p, p+n); int m=0; for(int i=0;i<n;i++){ while(m>1 && Cross(ch[m-1]-ch[m-2], p[i]-ch[m-1]) <= 0) m--; ch[m++]=p[i];

2017-01-07 15:46:15 316

原创 点在多边形内判定

#include #include #include #include #include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b) for(int i=a;i>=(int)(b);--i)struct Point{ double x,y; Poi

2017-01-07 14:52:44 270

原创 LA 2572 Viva Confetti 离散化 *

题目地址:https://vjudge.net/problem/UVALive-2572离散化:把每个圆看成是一段一段弧组成的每个圆拿出来看一下,先求其上与其他所有圆的交点。每两个交点之间的那段弧要么可见要么不可见,在弧上任取一个点(这里取的的中点),将该点向内(圆心方向)和向外移动一个微小的eps距离,为p1,p2,看看p1和p2是否在最上层的圆内,如果在内部,那么该圆可见#

2017-01-07 12:40:49 351

原创 UVA 12304 2D Geometry 110 in 1! -

题目地址:https://vjudge.net/problem/UVA-12304#include #include #include #include #include #include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b) for(int

2017-01-06 21:01:19 239

原创 POJ 4720 Naive and Silly Muggles -

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4720求围住一个三角形的最小圆如果是钝角,那么圆的直径就是最长的那条边其他情况圆是三角形的外接圆可用以下方法求的外心:给定三角形三个顶点的坐标,如何求三角形的外心的坐标呢?例如 :给定a(x1,y1) b(x2,y2) c(x3,y3)求外接圆心坐标O(x,y)

2017-01-06 08:43:55 234

原创 圆的相关计算(刘汝佳版)

#include #include #include #include #include using namespace std;/*Point的模板*/struct Point{ double x,y; Point(double x=0,double y=0):x(x),y(y){}};typedef Point Vector;//向量+向量=向量,点+向量=点Vec

2017-01-05 20:01:48 342

原创 UVA 11796 Dog Distance .

题目地址:https://vjudge.net/problem/UVA-11796想法:对于A和B一起的每一线段,它们之间差的距离肯定要么是增函数,要么是减函数,所以答案只存在A处于莫个端点或B处于某个端点的时候所以 剩下的目标就是如何枚举每一线段,然后更新其中我还弄错了一个地方,我以为取答案的两个点肯定是在端点上,然而 不一定在端点上,那么在一起运动的时候,难得就是它们速度不一样,一

2017-01-05 11:19:21 304

原创 LA 3263 That Nice Euler Circuit 欧拉定理 -

题目地址:https://vjudge.net/problem/UVALive-3263#include #include #include #include #include using namespace std;#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)#define REPD(i,a,b) for(int i=a;i>

2017-01-04 20:50:45 210

原创 UVA 11178 Morley's Theorem .

题目地址:https://vjudge.net/problem/UVA-11178模板题#include #include #include #include #include using namespace std;/*Point模板部分*/typedef complex Point;typedef Point Vector;const double eps = 1e

2017-01-03 20:36:08 277

原创 点和直线的计算(直线的参数方程表示)刘汝佳版

直线由一个点P和一个方向向量v表示,比如L=P+tv#include #include #include #include #include using namespace std;/*Point模板部分*/typedef complex Point;typedef Point Vector;const double eps = 1e-10;int dcmp(doub

2017-01-03 19:45:02 1241

原创 点和向量的表示和基本计算(刘汝佳版)

#include #include #include #include using namespace std;struct Point{ double x,y; Point(double x=0,double y=0):x(x),y(y){}};typedef Point Vector;//向量+向量=向量,点+向量=点Vector operator + (Vector A

2017-01-03 16:41:15 1554

原创 关于阶乘的题目

poj 1423 Stirling公式,求阶乘的位数poj 1401 判断阶乘末尾0的个数poj 1604 求阶乘的最末非零位

2017-01-03 14:19:38 980

原创 POJ 1401 Factorial 阶乘0的数量 .

题目地址:http://poj.org/problem?id=1401我是从5的次幂数入手,看了网上的才发现原来可以那么简单.....以下摘自其他博客思路: 这一题要求的是N!中末尾0的个数,其实也就是所包含因子10的个数。10=5*2,因子10的个数也就是因子2的个数与因子5的个数中较小的那个,N!=1*2*3...*N,其中2的因子个数一定不少于5的因子个数,所以要求的其实

2017-01-03 14:17:19 349

原创 POJ 1423 Big Number 阶乘位数+Stirling+JAVA .

题目地址:http://poj.org/problem?id=1423计算位数的是 (int) log10(n) + 1斯特林公式是 n!≈sqrt(2*π*n)*(n/e)^n联立得:f(n)=(int){log10[sqrt(2*π*n)]+n*log10(n/e)} + 1;import java.util.*;import java.math.*;import ja

2017-01-03 10:39:38 292

原创 POJ 3101 Astronomy .

题目地址:http://poj.org/problem?id=3101因为只要半圈就可以在一条直线上,所以可以先求出与第一个星球的差半个周期的时间间隔,求这些分数的公倍数每个星球的速度是L/Ti , 相差的速度为 abs(L/T0-L/Ti)  那么差半圈的时间为 0.5*L / abs(L/T0-L/Ti)求分数的公倍数也即是,求分子的最小公倍数,分母的最大公因子求LCM,GCD

2017-01-02 20:22:09 327

原创 POJ 3199 Uncle Jack JAVA .

题目地址:http://poj.org/problem?id=3199因为不是所有人必须要分到所以可以那么想:将m个CD分发给n个孩子,先分第一个,有n个可能再分第二个,有n个可能再分第三个,有n个可能......所以一共有 n^m种import java.util.*;import java.math.*;import java.text.*;i

2017-01-02 19:07:02 343

原创 POJ 2413 How many Fibs? .

题目地址:http://poj.org/problem?id=2413import java.util.*;import java.math.*;import java.text.*;import java.io.*;public class Main{ public static void main(String[] args) { Scanner cin = new S

2017-01-02 18:01:15 271

原创 POJ 2389 Bull Math JAVA .

题目地址:http://poj.org/problem?id=2389用 JAVA 显得太水一点了.. import java.util.*;import java.math.*;import java.text.*;import java.io.*;public class Main{ public static void main(String[] args) {

2017-01-02 17:33:21 412

原创 POJ 2325 Persistent Numbers .

题目地址:http://poj.org/problem?id=2325import java.util.*;import java.math.*;import java.text.*;import java.io.*;public class Main{ public static void main(String[] args) { Scanner cin = new S

2017-01-02 17:26:02 339

原创 POJ 2305 Basic remains .

题目地址:http://poj.org/problem?id=2305import java.util.*;import java.math.*;import java.text.*;import java.io.*;public class Main{ public static void main(String[] args) { Scanner cin = new S

2017-01-02 15:10:24 217

原创 POJ 2084 Game of Connections 卡特兰数+JAVA -

题目地址:http://poj.org/problem?id=2084递推地方法:假设有n对点,答案为f(n)假设第一个点连接了第2*k+1个点,那么此时答案为f(k)*f(n-k-1),左边k对点和右边n-k-1对点利用加法原理,n对点,一共有∑f(k)*f(n-k-1) {k>=0&&k也就是卡特兰数利用BigInteger就好了import java.util.*

2017-01-02 14:55:50 250

原创 POJ 1894 Alternative Scale of Notation .

题目地址:http://poj.org/problem?id=1894import java.util.*;import java.math.*;import java.text.*;import java.io.*;public class Main{ public static void main(String[] args) { Scanner cin = new Sca

2017-01-02 11:06:20 241

原创 POJ 1604 Just the Facts JAVA .

题目地址:http://poj.org/problem?id=1604import java.util.*;import java.math.*;import java.text.*;import java.io.*;public class Main{ public static void main(String[] args) { Scanner cin = new S

2017-01-02 10:02:03 227

原创 POJ 1503 Integer Inquiry JAVA .

题目地址:http://poj.org/problem?id=1503BigInteger 就好import java.util.*;import java.math.*;import java.text.*;import java.io.*;public class Main{ public static void main(String[] args) { Scan

2017-01-02 09:28:44 243

原创 POJ 1405 Heritage 找规律+JAVA .

题目地址:http://poj.org/problem?id=1405打表找规律:import java.util.*;import java.math.*;import java.text.*;import java.io.*;public class Main{ public static void main(String[] args) { Scanner cin

2017-01-01 22:00:45 230

原创 POJ 1220 NUMBER BASE CONVERSION JAVA .

题目地址:http://poj.org/problem?id=1220import java.util.*;import java.math.*;import java.text.*;import java.io.*;public class Main{ public static int getNum(char ch){ if(Character.isDigit(c

2017-01-01 20:28:20 303

原创 POJ 1205 Water Treatment Plants JAVA高精度+DP *

题目地址:http://poj.org/problem?id=12051.把自己的污水排到河里V2.把自己的污水送到右边>3.把自己的污水送到左边至少要有一个城市排水。要求给N个城市,方案种数。用递推的方法,从1个到n个定义A(n)为n个城市的总数,也就是这n个城市可以解决排水问题那么就尝试从n个城市推到n-1假设:

2017-01-01 19:13:31 395

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除