自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 POJ-3349 Geometric Shapes

题解:https://blog.csdn.net/miranda_ymz/article/details/81980053#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace ...

2018-08-29 16:09:25 160

原创 POJ-1039 Pipe

题解:https://blog.csdn.net/miranda_ymz/article/details/81980801#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace ...

2018-08-29 14:47:34 103

原创 POJ-2826 An Easy Problem?!

这是一道需要注意很多问题的简单计算几何题首先判断两个线段状态,不相交或者重合直接输出0.00然后求出交点,检查四个端点,是否在交点之上,在之上的可以做两个线段一个是横跨平面穿过这个点的线段L,一个是从这点向上到边界的线段R如果满足L与另一条线段相交且R与另一条线段不相交(可以蓄水到这个高度,并且上方没有被遮挡)就计算蓄水的三角形面积,详细见代码还有注意答案要加eps,这是一...

2018-08-27 09:50:39 192

原创 POJ-3348 Cows

模板题,先用Graham求凸包,然后用多边形面积公式求凸包面积,除以50取整就是答案#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long l...

2018-08-27 09:12:23 174

原创 POJ-3347 Kadj Squares

把每个正方形抽象成三个数据,最左端点和最右端点的横坐标L,R,以及两个端点的高度H也就是一条线段,和它的位置,判断遮挡的时候只需要判断这些线段就可以了难点就是确定每个线段的位置,每次新加一个正方形时,算出与前面所有的正方形相接的左端点值最大的那个就是真实位置,计算公式 L=S[i].R-abs(S[i].H-H); S[i]为前面的正方形确定位置后按照高度从高到低排序,然后用标记判...

2018-08-27 08:47:39 267

原创 CodeForces-1029F Multicolored Markers

用a或b形成小矩形,用a+b形成大矩形,小矩形只要能放在大矩形里就可以了大矩形的长和宽要尽量接近,详细见代码注释#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std...

2018-08-26 09:25:43 304

原创 CodeForces-1029D Concatenated Multiples

开二维数组p[][],p[i]保存所有数字乘以10^i 对 k 的余数(0 < i < 11),对所有p[i]排序在对每个数字求对 k 的余数,如果这个数字 A 是 i 位数,就在p[i]中寻找 (k - A%k)%k 的个数用二分查找来确定个数,还要去掉自己和自己组合的情况,加起来就是答案#include<iostream>#include<cstd...

2018-08-26 09:16:04 287

原创 CodeForces-1029C Maximal Intersection

先将数据离散化,然后用线段树统计所有线段叠加起来覆盖最多次数的线段和长度再单独将每个线段去掉,查询是否有覆盖n-1次的线段,记录最大的长度就可以了当线段是一个点是要注意特判#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include&...

2018-08-26 08:59:59 230

原创 CodeFoces-1029B Creating the Contest

题目中给出的序列就是升序的,所以最大数量的问题就是最长连续的符合要求的序列所以就找最长连续的序列,符合要求a[i]<=2*a[i-1]#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using...

2018-08-26 08:54:56 144

原创 POJ-1696 Space Ant

先选出最下边的点作为起点,再以起点为中心给所有点极角排序这样就选出了当前点最右边的点,在以这个点为中心极角排序,继续选点以这个规则路径就不会有交点,并且一直向左转弯极角排序就是利用点的叉乘运算判断两个向量的左右,以此给所有点按中心以顺时针或逆时针方向排序#include<iostream>#include<cstdio>#include<cstr...

2018-08-24 16:22:06 124

原创 POJ-1410 Intersection

给出一条线段和和矩形的左上右下点,问线段与矩形有没有公共点也就是说,如果线段与矩形的边有交点或者线段在矩形内输出T,否则F有个让人无语的坑点,左上点不一定是左上,右下点也不一定是右下,要再判断交换一下#include<iostream>#include<cstdio>#include<cstring>#include<algorithm...

2018-08-24 10:57:38 142

原创 POJ-1066 Treasure Hunt

有一个100*100的密室,密室中贯穿了n个墙,再加上外围的四个墙,这些墙不会有三个及以上的墙交于一点给出密室中宝藏的坐标,要从密室外爆破通过墙壁到达宝藏位置,爆破位置必须是进入房间墙壁的中心点问最少需要爆破墙壁数因为必须是墙壁中心点,我们可以从外围寻找两两点构成墙壁的中心点,从这些位置开始爆破如果从这些点和宝藏连一条线,可以发现,与这条线相交的墙壁都是必须要爆破的,而且只需要一次...

2018-08-24 10:27:40 198

原创 POJ-2653 Pick-up sticks

每次新放一根棍子时,判断与之前的棍子是否相交,如果相交那么之前的那个棍子将不在顶部题目说明在顶部的棍子始终不超过1000,那么可以用一个数组保存在顶部棍子的下标每次判断相交只需要判断在在顶部的棍子,时间复杂度为1e8#include<iostream>#include<cstdio>#include<cstring>#include<a...

2018-08-24 09:40:31 140

原创 POJ-1556 The Doors

这道题,没想到什么好的办法,数据量不大,干脆直接转化成最短路问题把每个列上的四个点放到点数组里,再加上起点和终点,再把每列的三个墙放到墙数组,再加上左墙和右墙然后求两两点之间连成线段是否与墙数组的墙有超过两个交点,(因为和墙相接的缘故,总会有两个相交的)不超过两个就在图中加一条边,代表两点相连,还有路径长度最后迪杰斯特拉求解#include<iostream>#...

2018-08-23 22:01:47 158

原创 POJ-1269 Intersecting Lines

一道模板题,判断直线重合,平行还是相交#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;const double ep...

2018-08-23 16:08:23 245

原创 POJ-3304 Segments

题目意思转化过来就是说,问能不能有一条直线,可以穿过给出的所有线段可以枚举两两点之间形成的直线,判断这条直线是否穿过所有线段如果有直线可以输出Yes!,否则输出No!要注意如果两个点距离太近(可以视为同一位置),就不要组成直线了#include<iostream>#include<cstdio>#include<cstring>#incl...

2018-08-20 22:22:01 197

原创 CodeForces-1205B Weakened Common Divisor

先找出最小的一对数字,把他们所有的因数找出来,保存在数组里接下来过一遍数字对,每次都把能够整除至少一个数字的因数保留,最后剩余的都可以作为答案如果因数特别多会超时,所以在开始时尽量对因数分解,分解为质数,能够大大减少因数数量#include<iostream>#include<cstdio>#include<cstring>#include&...

2018-08-20 11:21:39 270

原创 POJ-2398 Toy Storage

先按照每个隔板上端x的大小从左到右排序排好之后用二分找到每个玩具在第i个隔板的右边,玩具就在i+1区域再统计有i个玩具的区域有多少个(i>0)#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>...

2018-08-19 19:18:15 147

原创 POJ-2318 TOYS

对于每个玩具,用二分法判断它的位置是否在第i条隔板的右边,是的话位置就是i+1#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long...

2018-08-19 19:10:10 121

原创 CodeForces-799D Field expansion

dfs+优化,也可以dp#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;const int N=1e5+10;ll...

2018-08-15 10:49:58 136

原创 CodeForces-799C Fountains

有三种情况,选一个C和一个D,或者选两个C或DC,D各一个的时候好找,两个C或D的时候用线段树维护查讯,取这三种情况的最大值两个C或D的时候直接暴力加一些优化也可以过线段树方法:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#inc...

2018-08-15 10:01:38 216

原创 CodeForces-799B T-shirt buying

开三个数组,按价格顺序把含有这个颜色的衣服保存需要的时候就找价格最小的,且没有被卖出去的衣服出来#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typede...

2018-08-15 08:52:40 197

原创 HDU-5459 Jesus Is Here

找规律找出递推式,直接递推打表就好一个比较详细的题解:https://blog.csdn.net/Miranda_ymz/article/details/81671066递推式和我不太一样#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#...

2018-08-15 08:44:24 128

原创 HDU-5455 Fang Fang

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;const int N=1e6+10;char s[N];int m...

2018-08-15 08:41:14 157

原创 HDU-5461 Largest Point

用了很蠢的方法#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;const int N=5000000+10;ll ...

2018-08-15 08:38:52 97

原创 HDU-4868 Arc of Dream

根据题目给出的公式,写出关于Sn,An*Bn,An,Bn,1五项的转移矩阵然后用矩阵快速幂解决#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef...

2018-08-12 21:23:26 127

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

先用矩阵快速幂计算出F(n)含有a的个数和b的个数,再用快速幂算出答案WA后才发现A^B%C并不等于A^(B%C)%C费马小定理:C为质数且A,C互质,A^B%C=A^(B%(C-1))%C那么求幂次时MOD-1就可以了#include<iostream>#include<cstdio>#include<cstring>#include&...

2018-08-12 20:12:52 261

原创 UVA-10518 How Many Calls?

问用递归函数求斐波那契数f(n)时,会调用多少次函数设调用次数为C(n),C(n)=C(n-1)+C(n-2)+1,C(1)=C(0)=1可得矩阵:用矩阵快速幂求解C(n)      | 1   1   1   |    C(n-1)C(n-1)   |  1   0   0  |    C(n-2)  1         |  0   0   1  |        1...

2018-08-12 19:44:29 163

原创 FZU-1911 Construct a Matrix

首先对于S(n),可以写一个矩阵,用矩阵快速幂求解S(n)   | 1   1   1   |  S(n-1)f(n)    |  0   1   1  |    f(n-1)f(n-1) |  0   1   0   |   f(n-2) 求出来计算出L=S(n)%m之后,构造题目中要求的矩阵,找规律后发现,可以构造成以下最简单的形式当L=0或者L为奇数时为No,L为偶数时Y...

2018-08-12 11:33:33 162 1

原创 CodeForces-385E Bear in the Field

熊一开始在sx,sy位置,移动的速度为dx,dy,地图的范围是1~n,每次移动会到达x+dx,y+dy的位置,如果大于n,就%n+1每次移动之前,假设时间为 t (从0开始),k=x+y+t,dx,dy会变为dx+k,dy+k可以用矩阵实现移动,因为%n时只会产生0~n-1的数,所以干脆把坐标范围变成0~n-1输入坐标后-1,输出坐标时+1,矩阵也要改动一下X   |  2  1 ...

2018-08-12 10:32:19 177

原创 CodeForces-392C Yet Another Number Sequence

用牛顿二项式定理转化递推式,再用矩阵快速幂求解太菜了,看了别人的题解:https://www.cnblogs.com/simplekinght/p/6674256.html#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include&lt...

2018-08-12 09:04:46 189

原创 CodeForces-798D Mike and distribution

按照A的大小给数组的下标排序排好后,先取第一个下标,也就是A最大的那个之后按顺序每两个按照下标之间取B较大的那个,最后如果n是偶数还剩最后一个可以取这样就可以保证满足条件#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include...

2018-08-11 08:59:13 158

原创 CodeForces-798C Mike and gcd problem

按照题目中的变换方式,a,b变为a-b,a+b设gcd(a-b,a+b)=k,并且a或b不是k的整数倍,a-b和a+b都是k的整数倍2*b+a-b=a+b,2*a-(a-b)=a+b,可以得到2*b和2*a是k的整数倍,由此得到k必为偶数,那么可以直接看做2先求题目给出序列的gcd,如果>1,直接输出YES,0否则就全部转化为偶数,相邻两个数转化,偶奇和奇偶变为奇奇,奇奇变为...

2018-08-11 08:44:59 130

原创 HDU-4565 So Easy!

对于(a+sqrt(b))^n,可以写成X+Y*sqrt(b)的形式,X(1)=a,Y(1)=1并且可以推出转移公式:X(n)=a*X(n-1)+b*Y(n-1),Y(n)=X(n-1)+a*Y(n-1)可以用矩阵快速幂求出X(n),Y(n)又因为(a+sqrt(b))^n=Xn+Yn*b,(a-sqrt(b))^n=Xn-Yn*b,且0<(a-sqrt(b))^n<1...

2018-08-09 08:57:30 142

原创 UVA-10870 Recurrences

简单的用矩阵快速幂求递推式#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;ll MOD;int N;struct...

2018-08-08 10:49:25 108

原创 UVA-1386 Cellular Automaton

循环矩阵+矩阵快速幂参考这里:https://blog.csdn.net/qq_33184171/article/details/52399129#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>us...

2018-08-07 21:12:36 201

原创 UVA-10655 Contemplation! Algebra

给出a+b的值p和ab的值q,问a^n+b^n的值经过尝试后发现要求出a和b是不现实的,如果都是正数可以二分法求,但a,b可能是负数那么就在式子上做功夫,a^n+b^n=(a+b)*(a^(n-1)+b^(n-1))-ab*(a^(n-2)+b^(n-2))设f(n)=a^n+b^n,那么可以得出f(n)=p*f(n-1)-q*f(n-2),另外可以得出 f(0)=2,f(1)=p...

2018-08-07 17:07:23 101

原创 UVA-11149 Power of Matrix

倍增法求矩阵幂的和:https://blog.csdn.net/luomingjun12315/article/details/50824552#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using...

2018-08-07 16:02:17 132

原创 UVA-10689 Yet another Number Sequence

简单的用矩阵快速幂求斐波那契数列#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;ll MOD;const int ...

2018-08-07 15:08:13 143

原创 UVA-11551 Experienced Endeavour

给出初始数组和操作,每次操作后,数组中每个数字将变为原来数组中若干个数字之和问r次操作后数组是什么样子可以把操作转化为矩阵乘法,然后用矩阵快速幂求解#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>...

2018-08-07 14:54:30 157

空空如也

空空如也

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

TA关注的人

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