自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DeathYmz的博客

菜鸟的奋斗

  • 博客(55)
  • 收藏
  • 关注

原创 点的判断与距离:判断点在线段上+在凸变形内+在任意多边形内,求点到点+线段+直线的距离

点线基本结构const double eps=1e-8; const double PI=acos(-1.0);int sgn(double x){ if(fabs(x)<eps) return 0; if(x<0) return -1; else return 1;}struct point{ double x,y; point(...

2018-08-25 11:42:10 986

原创 关于线段的一些模板(判断线段相交+判断直线和线段相交+点到线段距离+点在线段上)

来源kuangbin模板关于一些精度const double eps=1e-8; const double PI=acos(-1.0);int sgn(double x)//{ if(fabs(x)<eps) return 0; if(x<0) return -1; else return 1;}点的结构struct point{ ...

2018-08-25 10:15:04 649

原创 A Round Peg in a Ground Hole POJ - 1584

#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>using namespace std;const int N=200;const double eps=1

2018-08-25 09:40:59 225

原创 Line of Sight POJ - 2074(思维+数学)

Line of Sight POJ - 2074 分类:思维+数学题 题意:给出房子的位置和参考线的位置,接下来给一系列障碍物的位置,问在参考系上能看到完整房屋的最长连续长度为多少。 思路:反向思维, 1、每输入一个障碍物的位置,首先判断是不是合法障碍物(合法的是在,房子和参考系中间。在房子之上或平行,或者参考系之下平行,都不会影响视线) 2、计算他在x轴的视觉盲区,存下来。注意:s,e...

2018-08-23 17:03:31 416 1

原创 Pipe POJ - 1039(线段相交+计算几何+暴力)

Pipe POJ - 1039 分类:线段相交+计算几何+暴力 题意:给你管道上方的折点(下方为上方y-1),问光线最远能达到的横轴位置. 思路:判断线段相交方式,枚举上下端点,判断与管道的折点处垂线的关系,相交说明还在管道内。可行。#include<iostream>#include<cstdio>#include<algorithm>#inc...

2018-08-23 14:47:36 546

原创 Geometric Shapes POJ - 3449(计算几何+线段相交+细心)

Geometric Shapes POJ - 3449 分类:细心+线段相交 题外话:一个tot写成了0,找了一上午bug,我粗心的想打死自己,哭了都要,题真的不难!但是就是代码有点长!一定要细心,重复的不要复制粘贴之后就不改,简直要命。 题意:给你一堆图形的坐标(直线,三角形,正方形,矩形,多边形),问他们之间的相交情况。 思路: 1、处理存储的问题,将不同形状的点按顺序存起来,三角...

2018-08-23 14:16:57 473

原创 Codeforces Round #411 (Div. 2)(四道大水题)

Codeforces Round #411 (Div. 2) 四道大水题,写完四道就凉 了。A - Fake NP CodeForces - 805A#include<iostream>#include<cstdio>using namespace std;int main(){ int l ,r; scanf("%d%d",&l,...

2018-08-23 09:05:59 202

原创 Kadj Squares POJ - 3347

Kadj Squares POJ - 3347 题意:给出正方形的边长序列,问从上面看,能看到哪些正方形。 思路:没有思路,看了题解,emmm。参考博客#include<iostream>#include<cstdio>#include<cmath>#include <cstring>#include <algorithm&g...

2018-08-22 16:06:40 406

原创 An Easy Problem?! POJ - 2826 (计算几何+线段相交+精度)

An Easy Problem?! POJ - 2826 分类:计算几何+精度判断+线段相交+交点 题外话:写了半天才过了,虽然思路想起来很简单,但是超多的精度判断,还有好多细节,还有我又一次在输出:%lf和%f上面WA几次。后来参考别人的博客,有几个博客说AC代码,但是提交时WA,可能是后来题目的测试数据又变了一些把。 题目:给你两个线段,问可以存储的水量最多为多少。 思路: 判断线...

2018-08-22 14:11:25 336

原创 求三角形面积+多边形面积

三角形面积struct point{ double x,y; }double areaTrian(point A,point B)//三角形面积{ return fabs((B.x-A.x)*(C.x-A.y)-(C.x-A.x)*(B.y-A.y))/2;}简单多边形面积//多边形面积求解,也可以用三角形的方式struct Tpoint{ doub...

2018-08-21 22:47:45 299

原创 Cows poj 3348 (凸包+多边形面积)

Cows poj 3348 分类:凸包+多边形面积 题意:给出点的位置,求最大面积。答案除以50(emmm我求出最大面积然后和答案一直不一样,后来发现。。。忘记除以50了) 思路:运用了Graham_Scan 算法和求多边形面积公式。 AC代码://例题;Graham算法#include<iostream>#include<cstdio>#include...

2018-08-21 22:37:19 371

原创 Graham_Scan 算法(求凸包顶点序列)

Graham_Scan 算法 说明:Graham- Scan是一种灵活的凸包算法,其总的时间复杂度仅为0( nlog n)。Graham扫描法的原理是从点集中先找出一个最左下方的点,可以证明,这点肯定在凸包上,然后以这点为极点,将所有点根据与这点的极角排序,并且同时使用一个栈结构维护凸包上的点。按照极角序依次将点与栈顶的两个点作拐向判断:若右拐,则将当前点加人栈中;否则,将栈顶的点弹出。当遍...

2018-08-21 15:53:07 1009

原创 Space Ant POJ - 1696(计算几何+极角排序)

Space Ant POJ - 1696 分类:极角排序+计算几何 题意:给出坐标点,经历所有点,(不能走重复的路,只能向左选择走)。 思路:刚看了Graham_Scan算法,照着模板用在这上面写了一遍,嗯错了。这个是求凸包的顶点序列,用在这题是不怎么合适。后看了别人题解,使用极角排序。 关于求极角利用的是叉积的性质。 关于第一个点的选区是最下方的点,直接把这个算作开始的点。 排序,根...

2018-08-21 15:39:30 300

原创 Intersection POJ - 1410

Intersection POJ - 1410 分类:计算几何+线段相交 题目: You are to write a program that has to decide whether a given line segment intersects a given rectangle. An example: line: start point: (4,9) end poi...

2018-08-21 12:39:27 319

原创 Treasure Hunt POJ - 1066

Treasure Hunt POJ - 1066 分类:计算几何+线段相交题目: Archeologists from the Antiquities and Curios Museum (ACM) have flown to Egypt to examine the great pyramid of Key-Ops. Using state-of-the-art technology ...

2018-08-21 12:26:29 394

原创 Pick-up sticks POJ - 2653

Pick-up sticks POJ - 2653 分类:计算几何+线段相交** 题目: Stan has n sticks of various length. He throws them one at a time on the floor in a random way. After finishing throwing, Stan tries to find the top sti...

2018-08-21 12:18:50 238

原创 The Doors POJ - 1556

The Doors POJ - 1556 分类:计算几何+判断线段交叉+最短路 题外话:痛苦的领悟,找bug半天,发现是自己定义两个名称一样的变量,导致后面的错了,maye,找了一个小时。多次事实告诉我,不要定义两个重名的 思路:保存点的信息,墙信息,给两两个点之间符合条件(不与线段(墙)交叉)建立边,最短路直接Floyd找答案。//没两点建立边,跑最短路。#include<i...

2018-08-21 00:32:23 366

原创 求两直线交点+判断两线段相交+求线段交点

求两直线(线段)交点void getPoint(point p1,point p2,point p3 point p4){ double a0,b0,c0,a1,b1,c1; a0=p1.y-p2.y,b0=p2.x-p1.x,c0=p1.x*p2.y-p2.x*p1.y; a1=p3.y-p4.y,b1=p4.x-p3.x,c1=p3.x*p4.y-p4.x*p3....

2018-08-20 19:25:32 2326

原创 Intersecting Lines POJ - 1269

The Doors POJ - 1556 题意:给出两条直线上的两点求两直线的交点。 思路: 一般方程法: 直线的一般方程为F(x) = ax + by + c = 0。既然我们已经知道直线的两个点,假设为(x0,y0), (x1, y1),那么可以得到a = y0 – y1, b = x1 – x0, c = x0y1 – x1y0。 因此我们可以将两条直线分别表示为 F0(x...

2018-08-20 19:15:59 195

原创 Segments POJ - 3304

Segments POJ - 3304 题意:给出n个线段,问是否有一条直线,可以使所有线段投影在这上面并交一点。 思路:并不是很会看了题解这个问题可以转化为是否存在一条直线和每个线段都有交点。 接下来,枚举每两个线段,两个线段可能组成的四条直线,注意重点。在利用叉积的性质,判断其他所有线段是否都和这条直线有交点 判断线段与直线l是否相交的方法: 1:利用叉积的性质,判断线段的两个端...

2018-08-20 19:11:47 259

原创 A. Doggo Recoloring && B. Weakened Common Divisor

Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) A. Doggo Recoloring 题意:给出字符串只有小写字母,问能不能把所有的字符变成相同的,能变的字母只有在改字符串中有两个及两个以上。 思路:直接判断,字符中有没有两个以上的字母一样,一样 就Yes,这里要注意n==1的情况。#...

2018-08-20 16:49:48 239

原创 POJ 2398 Toy Storage

POJ 2398 Toy Storage 思路:和TOYS POJ - 2318 题的思路一样,题意也是差不多,只不过输出为,玩具数量: 分区数,并按照玩具数量的升序输出。代码和之前的差不多,也只是修改了一下输出。#include<iostream>#include<cstdio>#include<cstring>#include<strin...

2018-08-19 12:37:27 266

原创 计算几何中向量的表示(点,向量,点积,叉积)

点的表示struct point{ int x,y; point(){} point(int _x,int _y){x=_x;y=_y;}};向量的表示struct v{ point start; point end; v(){} v(point _start,point _end){ start=_star...

2018-08-19 11:16:44 839

原创 TOYS POJ - 2318

TOYS POJ - 2318 题意:给出n,m,x1,y1,x2,y2;n代表又n个隔板,m代表将放入m个玩具,x1,y1代表左上的点,x2,y2代表右上的点。 思路:初学向量这方面,根据题解的意思,自己写的。主 要利用的原理是向量叉乘:向量P与向量Q。 P*Q>0 P在向量Q的顺时针方向(右) P*Q<0 P在向量Q的逆时针方向 (左) P*Q=0 P与Q共线,可能同向...

2018-08-19 11:09:53 328

原创 So Easy! HDU - 4565

So Easy! HDU - 4565 思路:题意虽然写着so easy 但是emmmm没想到怎么处理这个小数情况。看了题解: #include<cstdio>#include<cstring>#include<iostream>#include<cmath>using namespace std;typedef long long...

2018-08-19 09:33:25 296

原创 Experienced Endeavour UVA - 11551

Experienced Endeavour UVA - 11551 思路:水题,理解好题意可以直接构造 矩阵。给出n,r,n是代表接下来又n+1行,先给出一行n个数的数列ai,接下来n行开头给一个个数x,输入x个数bi,代表第ai接下来的变化要加上数列a(bi)的值,所以只要给构造的举证该位置置为1。r代表幂次。#include <cstdio> #include<io...

2018-08-19 09:28:13 305

原创 Bear in the Field CodeForces - 385E

Bear in the Field CodeForces - 385E 思路:根据所给条件写出递推式。 fxn=f(xn-1)+d(xn-1)+k k=xn-1+yn-1+2+t(n-1) tn-1=t(n-2)+1 为了方便计算将1-n 变为0-n-1,初始时将x-1,y-1,又由于求k时候是原始位置x+y,所以为x+y+2; 得出递推矩阵#include<cstdio&g...

2018-08-19 09:19:47 230

原创 Construct a Matrix FZU - 1911

Construct a Matrix FZU - 1911 思路:先用矩阵快速幂,求出要构造矩阵的大小,接下来就是怎么构造的了,不太会参考了别人的博客,这个构造的就很清晰了。 参考链接 求出来计算出L=S(n)%m之后,构造题目中要求的矩阵,找规律后发现,可以构造成以下最简单的形式 当L=0或者L为奇数时为No,L为偶数时Yes,例如L=6时 0 1 1 1 1 1...

2018-08-15 10:10:37 330

原创 How Many Calls? UVA - 10518

How Many Calls? UVA - 10518 题意:求f(n)的递归调用次数,用输出base进制的最后一个数。 思路:f(0)=1,f(1)=1,f(n)=f(n-1)+f(n-2)+1;#include<iostream>#include<cstdio>#include<cstring>using namespace std;ty...

2018-08-15 10:00:49 252

原创 M斐波那契数列 HDU - 4549

M斐波那契数列 HDU - 4549 思路:题意很简单,但是不好写,如果不知道幂的取模的话,基本就是tle。要知道如下定理:当m为素数,且a、m互质时, a^n % m = a^(n%(m-1)) % m。取模的问题解决了,就是矩阵快速幂了。#include<iostream>#include<cstdio>#include<cstring>us...

2018-08-15 09:52:53 329

原创 Fountains CodeForces - 799C

Fountains CodeForces - 799C 题意:给n,c,d代表喷泉个数,拥有硬币和砖石个数。接下来n行有b,p,c代表改喷泉美丽指数和价格CD代表用什么当作货币。 思路:只存下价格小于c,d的喷泉。进行排序,选择c+d,c+c,d+d中值最大的。这里直接n^2的搜索,就加了一点剪枝,卡过去了。#include<iostream>#include<cst...

2018-08-15 09:41:30 252

原创 T-shirt buying CodeForces - 799B

T-shirt buying CodeForces - 799B 题意:给n,一行n件衣服的价格,一行n件衣服的正面颜色,一行衣服反面颜色,给m,一行m位客人最喜欢的颜色。只要有衣服存在客人喜欢的颜色,就输出最小价格的那一件。 思路:一开始只用了一个结构体的数组,然后就超时了。后来改成将颜色分别存储,这里可能因为一件衣服颜色相同被放在一个数组里多次,所以要开大一点。#include&lt...

2018-08-15 09:30:20 252

原创 Fang Fang HDU - 5455

2018TYUT暑期ACM模拟赛(10) Fang Fang HDU - 5455 题意:问给定的字符串最少是由几个f[]组成的。注意字符串是循环的,所以第一样例可以看作从第一个c开始:cfffcffcffff,由三个f组成 思路:记录前面的f的个数,从第一c开始记录然后判断,里面有很多需要注意的地方,要想的全面一点。#include<cstdio>#include&l...

2018-08-15 09:12:27 278

原创 Largest Point HDU - 5461

2018TYUT暑期ACM模拟赛(10) Largest Point HDU - 5461 思路:一个结构体直接保存t*t*a和t*b,利用两个比较函数将两个值分别进行从小到大排序,保留最大的两位,如果id相同就找交叉相选最大的,id不同直接输出最大的两个值相加。#include<iostream>#include<cstdio>#include<al...

2018-08-14 18:07:34 397

原创 Jesus Is Here HDU - 5459(思维)

2018TYUT暑期ACM模拟赛(10) Jesus Is Here HDU - 54 题意:求按照一定规律组成的字符串种所有cff,两两相距的距离。例如cffffcff。相距5。 思路:这道题写了挺久的,主要是写了一会儿又不想写了然后还是继续写,主要是找到递推式,找到了之后就出来了,至于是怎么发现这个递推式呢,是一点点从数据中发现的。 首先可以知道只要有c就有,cff所以可以记录c的位...

2018-08-14 17:28:52 310

原创 Arc of Dream HDU - 4686

Arc of Dream HDU - 4686 思路:#include<cstdio>#include<cstring>#include<iostream>using namespace std;typedef long long ll;const ll mod=1000000007;struct matrix{ ll x[5][5]...

2018-08-12 21:54:21 181

原创 HDU degree 6380 & HDU 6385 rect

HDU degree 6380 #include<iostream>#include<cstdio> #include<cstring>#include<string>#include<algorithm>using namespace std;const int N=2*1

2018-08-12 18:05:36 258

原创 Cellular Automaton UVA - 1386

Cellular Automaton UVA - 1386 无数次次RE原因竟然是,开了一个int的n输入用ll型的,简直分分钟奔溃。 思路:开n*n的矩阵内存会爆,这里通过找系数矩阵的规律,用一行代表n行的数。 例如样例1的第一行系数矩阵:1 1 0 0 1,第二行时右移一位1 1 1 0 0 后面即使变换后也是这个道理。#include<iostream>#inclu...

2018-08-12 13:23:51 245

原创 Contemplation! Algebra UVA - 10655

Contemplation! Algebra UVA - 10655 题意:给a+b,ab,求a^n+b^n。 思路:a^n+b^n=(a^(n-1)+b^(n-1))*(a+b)-ab(a^(n-2)+b^(n-2)). 即f(n)=(a+b)f(n-1)-abf(n-2). 坑点:输入时只输入a b==0 0的时候结束。#include<cstdio>#include...

2018-08-12 09:38:19 274

原创 HDU 6374 度度熊拼三角

HDU 6374 度度熊拼三角 给n个木棒,找可以能拼成的周长最大的三角形的周长。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int a[1000+10];int main(){ int ...

2018-08-12 08:48:10 457

空空如也

空空如也

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

TA关注的人

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