自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

薇小薇

”喵喵喵?“

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

原创 [BZOJ2194]快速傅立叶之二(FFT)

题目:我是超链接题解:什么东西可以被FFT加速呢? ci=∑ij=0ajbi−jci=∑j=0iajbi−jc_i=∑_{j=0}^ia_jb_{i−j} c0=a0b0c0=a0b0c_0=a_0b_0 c1=a1b0+a0b1c1=a1b0+a0b1c_1=a_1b_0+a_0b_1 …题目让求什么呢? ck=∑n−1i=kakbi−kck=∑i=kn−1akbi...

2018-01-31 20:10:40 208

原创 [BZOJ2179]FFT快速傅立叶(FFT)

题目:我是超链接题解:一个 很弱智的高精乘 FFT板子,用fft做完之后要处理进位。代码:#include #include #include using namespace std;const double pi=acos(-1.0);const int N=180005;struct complex{ double x,y; complex

2018-01-31 17:36:10 226

原创 FFT学习笔记

前言基本没写过笔记这种东西,但是FFT这东西一开始就摧毁了我的智商,写写加深印象吧。 多亏了yhzq+yveh的笔记帮助,总算是明白一些了,以下部分内容引自二位dalao前置知识多项式定义以x" role="presentation" style="position: relative;">xxx为变量的多项式是定义在一个代数域F" role="presentatio

2018-01-31 11:27:31 378

原创 [BZOJ2342][Shoi2011]双倍回文(manacher)

题目:我是超链接题解:要将一个字符串劈开两次都是回文串。 实际上manacher了之后对于每一个大中心暴力找小中心就可以了,因为只有26个字符暴力是无法卡掉的,每次都搜索’#’保证两边是对称的代码:#include #include #include using namespace std;const int N=500005;int p[N*2],l;cha

2018-01-30 20:20:50 262

原创 [BZOJ2565]最长双回文串(manacher+讲解)

题目:我是超链接题解:日常废话几句 喵喵喵觉得不能再蹲在数据结构里了,虽然还有好多坑没填,先换换思路再说,继续字符串啦,这里是manacher算法啦要求双回文子串,实际上是求不重叠且相邻的两个回文串拼在一起的最长长度。 一开始读错题了 我们处理好字符串之后,用左右乱搞一下就好代码:#include #include #include using namespa

2018-01-30 16:20:06 322

原创 [BZOJ4129]Haruna’s Breakfast(树上莫队+分块)

题目:我是超链接题解:这一看就是树上莫队+修改没跑了吧,区间转移还是统计每个数字的个数吧,但是这个查询? 朴素的想法就是按照权值分块了,看看这个权值块里数值是不是全的,不是全的就枚举,这样可以实现O(n)" role="presentation" style="position: relative;">O(n−−√)O(n)O(\sqrt{n})枚举,O(1)" role="pres

2018-01-29 21:36:07 230

原创 [BZOJ3052][WC2013]糖果公园(树上莫队修改)

题目:我是超链接题解:带修改的树上莫队裸题咯。在算法上就是BZOJ2120和BZOJ3757的结合啊 注意这里分块的标准是:左端块,右端顶点,记录的最近一次修改的编号 这里判断要修改的点在不在目前所求路径上面可以用change操作的vis代码:#include #include #include #include #define LL long longusi

2018-01-29 18:39:44 238

原创 [BZOJ3757]苹果树(树上莫队+分块)

题目:我是超链接题解:我们刚刚学习了一种树上分块的方法,然后对于每个询问以左端点所在的块为第一关键字,右端点的dfs序为第二关键字排序。 那么如何进行区间的转移呢?我们来证明一下!【诶等等公式恐惧的朋友们不要走】定义S(u,v)" role="presentation" style="position: relative;">S(u,v)S(u,v)S(u,v)表示u到v路径

2018-01-29 16:11:20 364

原创 [BZOJ1086][SCOI2005]王室联邦(树上分块)

题目:我是超链接题解:别看他给你鬼扯什么省会,实际上这道题的题目翻译一下就是:给你一棵树,要求把树分成大小在[b,3b]之内的块 差不多是树上分块的基本思想了朴素的分块方式是贪心 能加就加 这种方法存在着严重的效率问题 可以被菊花卡成O(n)块 因此我们可以为其它的块预留位置 如果一块大小刚好>=b 就将这坨东西分成一块 首先任选一点开始深搜 维护一个栈 每个点退出递归时压栈

2018-01-28 21:15:32 210

原创 [CF375D]Tree and Queries(dfs序+莫队+分块)

题目:我是超链接题意:给定一棵n个点的树,节点带有权值,询问读入v,k,输出以v为根节点的子树有多少出现次数>=k的权值题解:这个子树一看就是dfs序啊,这个询问要分块啊,莫队排序似乎不错。 然后问题转化为【在一段已知区间内,出现次数在一段区间内,的数的个数】 之前做过一道题,当时的问题是【在一段已知区间内,数值在一段区间内,的种类数】,我们当时用的是权值分块 这一道

2018-01-28 15:54:41 471

原创 [BZOJ2741]【FOTILE模拟赛】L(分块+可持久化trie树)

题目:我是超链接题解:我们对这个题目转化一下:sum[l−1]" role="presentation" style="position: relative;">sum[l−1]sum[l−1]sum[l-1]^sum[r]" role="presentation" style="position: relative;">sum[r]sum[r]sum[r],每个询问就转

2018-01-26 15:53:51 280

原创 [BZOJ3261]最大异或和(可持久化trie树)

题目:我是超链接题解:本来喵喵喵还在好好写分块,结果突然发现要求最大异或和?没办法又是一个坑,顺道补了吧牵扯到xor的东西要有意识地想到用trie树。 既然都是可持久化的就跟主席树的感觉差不多吧 设sum[i]" role="presentation" style="position: relative;">sum[i]sum[i]sum[i]表示1...i" role="pr

2018-01-25 21:16:39 214

原创 [CF551E]GukiZ and GukiZiana(分块)

题目:我是超链接题意:1 l r x 将区间[l,r]的元素都+x 2 y 查询序列中是y这个数的坐标的最大差值题解:其实很简单,只需要暴力一点,在块内排序二分就好了,总复杂度O(qnlogn)" role="presentation" style="position: relative;">O(qn−−√logn)O(qnlogn)O(q\sqrt {n} logn)

2018-01-25 10:17:08 278

原创 [BZOJ4216]Pig(分块)

题目:我是超链接题解:诶求区间和这不是线段树的活吗,卡内存?看来只能乱搞一下了= =数组只让开一个n是要闹鬼咯,连pos都不让我开啊。。 然后只开了两个数组就狂M不止。。。最后把ask里面的i定义一下就好了代码:#include #include #include #define LL long longusing namespace std;int a[500

2018-01-24 20:40:54 197

原创 [BZOJ3809]Gty的二逼妹子序列(莫队+分块)

题目:我是超链接题解:Emmm。我们可以用莫队+树状数组的方法,一般莫队算法题会对位置进行分块,离线询问,以区间左端点所属的块为第一关键字,区间右端点为第二关键字进行排序,然后用树状数组维护一些值之类的。效率是O(mn√logn)O(m\sqrt{n}logn),根本过不去啊 但是可以采用莫队+权值分块的做法,莫队统计[l,r]内出现的所有数字,对于块外看看这个权值有没有,块内看看第

2018-01-24 19:36:49 282

原创 [BZOJ2141]排队(分块)

题目:我是超链接题解:对于逆序对的贡献进行考虑,交换一对(l,r),对于l来说,交换之后应该减去l~r中比l小的数的个数,加上l~r中比l大的数的个数;对于r来说,交换之后应该减去l~r中比r大的个数,加上l~r中比r小的个数。 这个快速查找一段区间内大于小于的,我们可以选择分块 注意这里每次交换的小朋友编号没有大小关系,需要交换= = 然后就是[l,r]的时候,由于对于边界会算

2018-01-24 15:00:12 292

原创 [BZOJ2453]维护队列(分块)

题目:我是超链接题解:有一个非常重要的思路:我们给每一个数弄一个pre[i]表示前面那个跟自已一个种类的位置,那么在查询[l,r]的时候,pre[i] 那么在查询的时候,分块处理,块外的暴力,块内的给pre排序二分处理;修改的时候,根据pre和nxt的关系暴力修改 要特别注意change的时候在什么情况下修改nxt/pre,什么时候不修改,也要注意insert的时候是pos[i]而

2018-01-24 08:27:00 256

原创 [BZOJ3343]教主的魔法(分块)

题目:我是超链接题解:先说几句废话 分块作为一种常见的数据结构设计思路,很经常用于部分分,博主比较蒟,考试时可能只写些部分分,那就切入分块吧,反正博主已经被计算几何吓哭了/(ㄒoㄒ)/~~然而这道题就是正经不做作的分块了嘛 大概思想是这样的,如果修改覆盖了整个块,那么就在块的总标记上加上修改的数,如果是块的一部分,那么就直接在那个数值上加上修改的数,然后用一个b数组辅助处理,把

2018-01-23 19:46:33 268

原创 [BZOJ1038][ZJOI2008]瞭望塔(半平面交)

题目:我是超链接题解:很显然,只有瞭望塔和每个山顶形成直线的斜率的绝对值大于对应山坡的斜率,这个山坡才能看见。不难想到对所有的山坡求一个半平面交然后找到有山顶存在的部分,这个nO(n2)O(n^2)求个半平面交吧 一开始还以为瞭望塔只能建在山顶上,突然发现还可以建在山坡上,那么这个最优的点不在【山顶对应的凸包上】就在【凸包的顶点对应的山坡上】 1A代码:#inc

2018-01-23 15:13:52 345

原创 [BZOJ2732][HNOI2012]射箭(二分+半平面交)

题目:我是超链接题解:这个关卡包含前面的特性很明显是二分 判断的话随便画画柿子就有y1=ax2+bx=y2y1,而x,y1,y2x,y1,y2都是已知的,这不就是一个关于a,b的直线了吗,半平面交? 这个数据范围也只有nlogn的半平面交能过了吧,总复杂度O(nlog2n)O(nlog^2n) 选择直线上的点的时候,注意不能选择与坐标轴的交点,因为这样过原点的直线并没有办法表示,

2018-01-23 08:02:56 254

原创 [POJ3384]Feng Shui(半平面交+凸包)

题目:我是超链接题意:在一个凸多边形中放两个半径固定的圆,要求输出使覆盖面积最大的(可重叠)两个圆圆心题解:Emmm。。。套路缩小凸多边形,形成的凸包是圆心可以在的位置,然后暴力找最远点! 不知道为什么nlogn的半平面交过不了(说不定是spj的锅)代码:#include#include#include#include#includeusing name

2018-01-22 16:07:52 303

原创 [POJ3525]Most Distant Point from the Sea(二分+半平面交)

题目:我是超链接题意:给出一个多边形,求里面一个点,其距离离多边形的边界最远,输出距离。题解:二分答案,相当于是把所有直线往里平移mid长,看看这个半平面能不能有交点 这个平移嘛。。可以找到一个垂直的方向(rotate),然后按照长度往里平移就好了代码:#include #include #include #include using namespac

2018-01-21 15:12:46 200

原创 [POJ1279]Art Gallery(半平面交)

题目:我是超链接题意:顺时针给一个多边形,求合格核点的面积(半平面交面积)题解:半平面交面积啦,这里采用一种O(nlogn)O(nlogn)的半平面交吧 一点知识储备 极角:从x正半轴旋转到向量v所需要的角(弧度) 按照极角排序的方法:ang=atan2(v.y,v.x)ang=atan2(v.y,v.x)(v即方向向量,ta的左边就是对应的半平面)下面代

2018-01-20 23:03:25 317

原创 [POJ3130]How I Mathematician Wonder What You Are!(半平面交)

题目:我是超链接题意:给出一个多边形,判断多边形是否有核题解:所谓多边形的核,简单来说就是有个人站在这个点,那么这个多边形内的每一个点这个人都能看见(光沿直线传播) 也就是说对于多边形的每一条边的一个半平面求交,可以交出来一个凸壳,这个点集中的点都满足要求 附图 这就是一道半平面交裸题了 诶等等我好像还不会半平面交给出若干个半平面,求它们的交

2018-01-20 16:57:31 215

原创 [POJ3608]Bridge Across Islands(计算几何-旋转卡壳-凸多边形间最小距离)

题目:我是超链接题解:这是旋转卡壳的第三种应用啦——凸多边形间最小距离 显然两个凸多边形的最远点对在凸包上,而且这种东西的前提是要判断两个凸包不能相交,不然最小距离肯定是0嘛,还要进行一堆特判。 具体做法其实就是用两条平行线去卡两个凸包,我们枚举一个多边形的边,然后从另一个多边形中找合适的对应点 在P上找出最下方的点记作C,在Q上找最上方的点记作D,记C在逆时针方向的下一

2018-01-20 11:21:11 670 1

原创 [BZOJ1185][HNOI2007]最小矩形覆盖(计算几何-旋转卡壳)

题目:我是超链接题解:这就是旋转卡壳的第二种应用了,最小矩形覆盖! 思路:矩形一定有一条边在凸包上,枚举这条边,旋转卡壳来维护其他三个点,对面的顶点用三角形面积大小判断,而两边的点则用点积来判断就好了,还有就是注意C++输出-0.00000的情况 真是不敢想象非ACM赛制的旋转卡壳怎么1A。。。这精度掉的。。。1e-9 -> 1e-8 -> 1e-7 -> 1e

2018-01-19 21:06:43 512

原创 [BZOJ1069][SCOI2007]最大土地面积(计算几何-旋转卡壳-最远点对)

题目:我是超链接题解:有了上个题的基础我们就知道怎么做了吧,这里有四个点,看看数据范围,我们枚举对角线就可以了,求两侧最大三角形 O(n2)O(n^2)此题卡常。代码:#include #include #include using namespace std;const double INF=1e18;const double eps=1e-9;int dc

2018-01-19 15:33:44 280

原创 [POJ2079]Triangle(计算几何-旋转卡壳-最远点对)

题目:我是超链接题意:给出一些点,求顶点在这些点上的面积最大的三角形题解:枚举一个点,在上次的基础上找另两个点,这样发现另两个点似乎也是单调的,没什么特别的,暴力去找就行了代码:#include #include using namespace std;const double INF=1e18;const double eps=1e-9;int

2018-01-19 14:37:55 246

原创 [POJ2187]Beauty Contest(计算几何-旋转卡壳-最远点对)

题目:我是超链接题解:值得一提的是,这是一个“不定向”算法,为什么呢,因为ta的名字不定哈哈哈,旋转卡壳一共有2*3*2*2=24种不同的读音哦旋转卡壳可以解决:凸多边形最远点对,凸多边形间最远/近点对,最小矩阵覆盖问题被凸包上被一对平行直线卡住的点对叫对踵点 答案一定出在一对对踵点上 尝试用通过旋转一对平行直线,枚举所有对踵点 按逆时针顺序枚举凸包上一条边,则凸包上

2018-01-19 08:28:31 378

原创 [POJ1873]The Fortified Forest(dfs+计算几何-凸包)

题目:我是超链接题意:给出一些树(坐标,价值,长度),要求砍下一些树做成篱笆,将剩下的树围起来。求砍下的树最小价值的方案,如果有多种方案,输出砍的树的个数最少的。题解:嘛国王最多只有15棵树啊,dfs砍不砍的话2^15也不多,那就暴力一波,1A满意代码:#include #include #include #include using namespace

2018-01-18 21:35:17 213

原创 [POJ1228]Grandpa's Estate(计算几何-凸包)

题目:我是超链接题意:给定一些凸包上的点,问能否确定唯一凸包题解:如何确定呢?三点确定一条直线,我们只要知道凸包上每一条边都有至少三个点就好了,而且顶点至少是三个啊 那我们先求个凸包,然后判断是否每条边都是三个点,注意每个点不一定只在一条线上(端点)代码:#include #include #include using namespace std;co

2018-01-18 20:39:36 253

原创 [POJ1113]Wall(计算几何-凸包)

题目:我是超链接题意:给出一个多边形,要在外围距离r围一圈围墙,求围墙的最小长度题解:这个多边形肯定是个凸包啊,但是这个外围距离?!看个图冷静一下,图引自这位up 所以所求长度如图所示为凸包周长加以l为半径的圆的周长。因为绕周长一周所以为一个正圆这里给出凸包求法: 凸包为把给定点包在内部,面积最小的凸多边形 常用Graham扫描法将点按x坐标第一关键字

2018-01-18 19:32:04 280

原创 [POJ1265]Area(计算几何-Pick定理)

题目:我是超链接题意:给出一个顶点都在整点的多边形,求在多边形内部有多少个整点,在多边形边界上有多少个整点,多边形的面积。题解:一道很综合的题 面积用三角形剖分 边点还是上次的方法 内部的点用Pick定理,一个计算点阵中顶点在格点上的多边形面积公式:S=a+b/2-1,其中a表示多边形内部的点数,b表示多边形边界上的点数,s表示多边形的面积。代码:#i

2018-01-18 15:47:36 244

原创 [POJ2954]Triangle(计算几何-Pick定理)

题目:我是超链接题意:给出一个顶点都是整点的三角形,求三角形内部的整点的个数。题解:一个计算点阵中顶点在格点上的多边形面积公式:S=a+b/2-1,其中a表示多边形内部的点数,b表示多边形边界上的点数,s表示多边形的面积。 这题让我求a啊,2a=2S+2−b2a=2S+2-b 这个S用叉积求 b的话,我们需要知道:端点是整点的线段内部如果有整点, 那线段一定是被

2018-01-18 14:58:06 308

原创 [POJ1654]Area(计算几何-多边形的面积)

题目:我是超链接题意:1左下 2下 3右下 4左 5回到原点 6右 7左上 8上 9右上 起点在原点,按照操作进行,走出来一个多边形,求多边形的面积。题解:这个就是裸题呀,然后我写了一发。。GG没看空间限制M了 求面积for (int i=2;iarea+=cj(dian[i]-dian[1],dian[i%n+1]-dian[1]);area/=2; area=

2018-01-18 08:28:05 386

原创 [HDU1756]Cupid's Arrow(计算几何-点在多边形内部)

题目:我是超链接题解:HDU的中文题?! 一看这个题不就是点在多边形内的裸题吗,为什么要发呢? 因为这个题目的图形不一定是凸多边形啊! 有什么关系呢?就是我们判断的时候不能只判断P点到AB的距离是不是0了,即不能仅仅判断是否共线,而是需要进一步用点积判断,就是下面这个图啦 那正确的判断姿势应该是。。bool is_online(po p,po a,po b){

2018-01-17 21:24:39 275

原创 [POJ1584]A Round Peg in a Ground Hole(计算几何-凸多边形)

题目:我是超链接题意:给出一个半径R、一个点O、顺时针或者逆时针给出一个多边形 首先判断多边形是否为凸多边形,如果不是输出HOLE IS ILL-FORMED 然后再判断以O为圆心以R为半径的圆是否完全在多边形里,是则输出PEG WILL FIT,否则输出PEG WILL NOT FIT题解:这个判断是否为凸多边形的话,考虑ta们的特点:任取一条边, 整个图形都

2018-01-17 20:13:04 209

原创 [HDU1115]Lifting the Stone(计算几何-三角形的[心]+角度计算+旋转)

题目:我是超链接题意:找到多边形的重心题解:三角形的重心我会求!就是顶点坐标的算术平均数。 一堆有质量的点的重心我会求!就是坐标加质量为权的平均数。 所以多边形重心我会求。 嘛这是重心(三条中线的交点) 对于其他的[心],我们先进行知识储备!求ππconst double pi=acos(-1.0);求夹角(这里都是弧度制啦)double angl

2018-01-17 18:36:01 467

原创 [POJ2826]An Easy Problem?!(计算几何-细节/距离)

题目:我是超链接题意:给出两条线段,雨水从空中竖直落下,问线段上能积多少水。题解:一道特判超~~~多的题目,下见注释咯 这道题精度会有-0.00?!加个fabs吧。这题的题解。。。真是敷衍啊 那就加个对于距离的讲解吧,虽然这个题没有用 点到直线的距离(用面积法啦)【如果a旋转到b是逆时针,则叉积为正,否则叉积为负】double DisDL(Point P,

2018-01-16 22:00:03 1269 1

原创 [POJ2653]Pick-up sticks(计算几何-叉积)

题目:我是超链接题解:两条线段的交点,那就像直线和线段的交点那样吧,假设线段A,B,所含四个点a,b,c,d a与c的方向向量和A的方向的叉积*a与d的方向向量和A的方向的叉积应当小于0(不在同一侧) 因为是线段,我们对于d也应该判断一遍,d与a,d与b 不过这个题。。别看是多组数据+n的范围,其实O(n2)O(n^2)能过?!代码:#include #in

2018-01-16 20:23:57 313

空空如也

空空如也

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

TA关注的人

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