E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
BZOJ2716
bzoj2716
[Violet 3]天使玩偶
http://www.elijahqi.win/2018/01/11/bzoj2648-sjy%e6%91%86%e6%a3%8b%e5%ad%90/#include#include#include#defineinf0x3f3f3f3f#defineN1100000usingnamespacestd;inlinechargc(){staticcharnow[1'9'){if(ch=='-')f=
elijahqi
·
2020-09-16 18:51
kd-tree
bzoj2716
: [Violet 3]天使玩偶
1#include2#include3#include4#include5#include6#definemaxn10000057#definemaxk10000058usingnamespacestd;910intn,m,ans[maxn],sum[maxk],maxx,maxy;11constintinf=maxk*4;12structdate{13intop,x,y,id;14}list[m
weixin_30551947
·
2020-09-16 01:12
php
BZOJ2716
: [Violet 3]天使玩偶(KD-Tree)
DescriptionInputOutputSampleInput10010081232716525844242595342962581497509718643472255288937754567229086545689387861456972385758764534885427835347081252497974433938826827582219288967097291453642123584
weixin_30905133
·
2020-09-16 00:28
[
BZOJ2716
][Violet 3]天使玩偶 && kdtree
存模板#include#include#include#include#include#defineSFscanf#definePFprintf#definempmake_pair#definesqr(x)((x)*(x))#definemax(a,b)((a)>(b)?(a):(b))#definemin(a,b)((a)>1;nth_element(p+l,p+mid,p+r+1);t[mid
大蒟蒻syk
·
2020-09-15 23:18
kd树
BZOJ2716
: [Violet 3]天使玩偶(CDQ分治)
传送门题意:给n个点,每个点出现有先后顺序,求给定位置在给定时间曼哈顿距离最近的点。题解:CDQ分治感觉自己CDQ写炸了,常数很大。首先拆分成4个区域。考虑j点对i位置的贡献首先有tjxi,yj>yi,此时贡献为xj+yj−xi−yi。使xj+yj最小。2.xj>xi,yjyi,此时贡献为xi+yj−xj−yi。使yj−xj最小。4.xjusingnamespacestd;inlineintrea
DZYO
·
2020-09-15 14:59
分治
bzoj2716
: [Violet 3]天使玩偶
传送门这题好像有CDQ分治做法不过我太菜了没听懂于是我打了一发kdtree度娘:k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。K-D树是二进制空间分割树的特殊的情况。大概思路就是每次确定一个轴,将点集平均分成两份,再递归建树。至于怎么划分:我们可以按照方差最大的方案来做。但是会产生这样的情况:所以我们
zhouyuyang233
·
2020-09-14 05:57
辣鸡八中
数据结构
bzoj2716
[Violet 3]天使玩偶(KDtree)
DescriptionInputOutputSampleInput10010081232716525844242595342962581497509718643472255288937754567229086545689387861456972385758764534885427835347081252497974433938826827582219288967097291453642123584
Coco_T_
·
2020-09-14 05:59
KDtree
bzoj2716
mdzz数据范围看错了#include#include#include#include#includeusingnamespacestd;typedeflonglongLL;inlineintread(){intx=0;boolf=0;charc=getchar();for(;c'9';c=getchar())f=c=='-'?1:0;for(;c>='0'&&c=r||hd>=tl)return
stony_oi
·
2020-09-14 04:17
CDQ分治
[
BZOJ2716
][天使玩偶angel][CDQ分治]
[
BZOJ2716
][天使玩偶angel][CDQ分治]题目大意:先给出n个点,然后有m个操作,(1,x,y)表示查询离(x,y)最近点的曼哈顿距离,(2,x,y)表示插入点(x,y)。
g1n0st
·
2020-09-14 03:06
Bzoj
CDQ分治
2017
[BZOJ2648]=[
BZOJ2716
]SJY摆棋子
原题地址Kdtree的带插入最邻近点查询.轮流划分维度+暴力插入AC了,而且时间排名还比较靠前…ACcode:#include#includeusingnamespacestd;constintK=2;constintN=1000010;constintINF=1mxd[i]=p->mnd[i]=p->poi.d[i];if(p->ch[0]!=NULL){p->mxd[i]=max(p->mxd
Zvezda_
·
2020-09-14 03:07
BZOJ
数据结构_Kdtree
bzoj2716
[Violet 3]天使玩偶(同bzoj2648)
bzoj2716
[Violet3]天使玩偶(同bzoj2648)#include#include#includeusingnamespacestd;#definelllonglong#defineinf0x3f3f3f3f
Icefox_zhx
·
2020-09-14 03:21
bzoj
K-D-tree
[
BZOJ2716
][Violet 3]天使玩偶(cdq分治+bit)
题目描述传送门题解上下左右想想就不好搞啊…所以我们每一次只统计某个点左下方与它最近的,然后做4遍|x-x’|+|y-y’|=(x+y)-(x’+y’),也就是求x+y最大的点然后这不就和三维偏序问题差不多了么?按照时间排序分治,每一次对(l,mid)和(mid+1,r)按照x排序,然后两个指针,对于每一个询问将横坐标都小于等于它的点按照y加入bit,权值为x+y,查询最大值然而写完了之后狂T不止啊
Clove_unique
·
2020-09-14 03:39
题解
cdq分治/整体二分
bit
【Violet3】【
BZOJ2716
】天使玩偶
DescriptionInputOutputSampleInputSampleOutputHINTSource在题面里放大样例…我该说Vani良心?样例太长了不放进去了在以前看的课件里见过这题#include#include#include#include#include#defineMAXN1000100#definelowbit(x)(x&(-x))#defineMAXINT0x7ffffff
CreationAugust
·
2020-09-14 03:39
模板题库
随便搞搞
【Violet III】天使玩偶 K-D tree
BZOJ2716
【VioletIII】天使玩偶K-Dtree裸题。对于插入操作可以离线处理,即先把原始的点和所有的即将插入的点一开始全部放在K-Dtree里,把一开始没有的点打上标记。
rgnoH
·
2020-09-14 01:30
K-Dtree
bzoj2716
[Violet 3]天使玩偶 k-d树
DescriptionSolution终于A了一题kd树!!!难以名状的兴奋扔一张图加深理解,图片来自百度百科所谓kd树可以理解为把一些点先按照第一维坐标排序,分成相等的两半,再继续分治两边按照第二维坐标。线段树可以看成是一维线段上的kdtree这样建出来的树可以资瓷在线插入、询问等操作。复杂度在随机数据下是log的但是能被人工数据卡成n√,复杂度在很大程度上取决于估价函数的选取,也就是在查询过程
olahiuj
·
2020-09-14 00:11
c++
k-d树
bzoj 2716: [Violet 3]天使玩偶
bzoj2716
:[Violet3]天使玩偶链接bzoj思路80s的评测交了五六发、、、貌似卡评测了只讨论在左下角的点,cdq分支求出。然后剩下的用坐标对称啥的再来三遍。不过每次还原这样是会T的。
复杂的哈皮狗
·
2020-09-13 06:54
BZOJ2716
:[Violet 3]天使玩偶——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2716样例输入231123212133242样例输出12————————————————————————————————整整一个上午的时间,终于DEBUG出来了,原来是因为我数组开小了……首先我们很容易想到一个三元组(t,x,y),其中t为操作时间。默认最开始给定的一些点的操作为插入,且时间优先级均高
weixin_34356555
·
2020-09-13 06:14
bzoj2716
: [Violet 3]天使玩偶
DescriptionInputOutputSampleInput10010081232716525844242595342962581497509718643472255288937754567229086545689387861456972385758764534885427835347081252497974433938826827582219288967097291453642123584
weixin_33836223
·
2020-09-13 04:40
bzoj2716
: [Violet 3]天使玩偶
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2716由于距离定义为曼哈顿距离,我们先将绝对值符号去掉。这时可以分为四种情况,但是我们可以对点的横纵坐标进行一些处理(处理方法可以看程序),可以使四种情况都变为一种:Ax>Bx,Ay>By。这时距离表示为dist(A,B)=(Ax+Ay)-(Bx+By)。对于一个点,我们只需要去找位于它左下
weixin_30881367
·
2020-09-13 03:53
php
bzoj 2648 SJY摆棋子 cdq分治+树状数组
题面题目传送门解法同
bzoj2716
自己cdq写的还是丑啊,别人A掉了我T飞了代码#include#defineinf1voidchkmax(node&x,nodey){x=max(x,y);}templatevoidchkmin
weixin_30591551
·
2020-09-12 20:46
bzoj2716
/2648 / P4169 [Violet]天使玩偶/SJY摆棋子
P4169[Violet]天使玩偶/SJY摆棋子k-dtree模板找了好几天才发现输出优化错了....真是zz......当子树非常不平衡时,就用替罪羊树的思想,拍扁重建。luogu有个点开了O2才过.......1#include2#include3#include4#include5#include6usingnamespacestd;7charc;voidread(int&x){8c=get
dingqiongliang0363
·
2020-09-12 19:48
【VIOLET3】【
BZOJ2716
】天使玩偶(cdq分治)
传送门把四个象限分开讨论(不然没法做对吧)对于一个点(x,y)(x,y)(x,y),也就是求min(∣x′−x∣+∣y′−y∣)min(|x'-x|+|y'-y|)min(∣x′−x∣+∣y′−y∣)考虑左下角,其他的类似则求min(x−x′+y−y′)=min(x+y−x′−y′)min(x-x'+y-y')=min(x+y-x'-y'
weixin_30642305
·
2020-09-12 14:27
bzoj2716
: \[Violet 3\]天使玩偶 cdq分治 曼哈顿距离
bzoj2716
:[Violet3]天使玩偶DescriptionInputOutputHINT分析关键在于每个点的答案可以分成四个方向考虑。所以可以旋转四次坐标系,然后把绝对值去掉。
lvzelong2014
·
2020-09-12 13:36
分治结构-cdq分治
数据结构-线段树&&树状数组
BZOJ2716
[Violet 3]天使玩偶 【CDQ分治】
题目输入格式输出格式输入样例//样例太长就不贴了。。。。输出样例//见原题提示题解我们将曼哈顿距离式子中的绝对值去掉,每次只考虑x,y比当前点小的更新答案。为了使所有点都对答案进行更新,将坐标轴旋转三次再算三次每一次对于点(x,y),找到(x’,y’)【x’#include#include#include#defineLLlonglongint#defineREP(i,n)for(inti=1;i
weixin_30258027
·
2020-09-12 12:04
KD_Tree 【bzoj2648 &&
bzoj2716
】SJY摆棋子 && [voilet 3] 天使玩偶
题目大意:维护一堆点,支持插入一个点和查询距离一个给定的点的曼哈顿距离最近的点。题目分析:(KD_Tree)据说还可以用CDQ分治做,但是因为要分四个象限讨论,很麻烦的说呀QAQ我这种萌萌哒蒟蒻自然去学KDT啦~(>▽#include#include#defineM500500usingnamespacestd;constintINF=0x3f3f3f3f;structpoint{intx,y;p
Todobe
·
2020-09-12 00:03
bzoj
KD-Tree
[
BZOJ2716
/2648][Violet 3]天使玩偶/SJY摆棋子[KDtree]
KDtree干这个复杂度是不对的,重构不一定有作用解释一下的话,因为复杂度是跟size相关的,所以重构作用不大,KDtree在查询最近点对中的作用仅仅是剪枝,可以构造数据使得他遍历O(n)个节点hackkdtree(上面这个是按照洛谷数据范围n,m3e5造的intn,m,x,y,now,ans,op,cnt,d[2];structNode{intMin[2],Max[2],d[2];Node*ls
weixin_34358092
·
2020-09-11 17:23
BZOJ2716
: [Violet 3]天使玩偶(KD-Tree)
DescriptionInputOutputSampleInput10010081232716525844242595342962581497509718643472255288937754567229086545689387861456972385758764534885427835347081252497974433938826827582219288967097291453642123584
weixin_30312659
·
2020-09-11 17:51
bzoj2716
感人肺腑pascal过不去系列(可能是自己弱,因为有pascal过去了毕竟)那个这种平面点还有一种处理方法是kdtree,太弱了不会有时间学一下我还是用了cdq分治,首先肯定要把绝对值这个不和谐的东西去掉然后就变成了4个部分,这样就非常好维护了,然后还是cdq分治的一般步骤有优化建议的欢迎指教……1constinf=1000000007;2typenode=record3x,y,p,z:longi
weixin_34290000
·
2020-09-11 11:34
BZOJ2716
天使玩偶
不会KD-tree怎么办?CQD硬搞。建立正常的平面直角坐标系,首先我们只考虑在目标点左下角的点对目标点的贡献,由于左下点的横纵坐标都小于目标点,那么曼哈顿距离就可以化简了,绝对值去掉后,得到$x2+y2-(x1+y1)$,那么我们的目标就转化为了求横纵坐标以及时间轴都小于目标查询点的更改点所作出的贡献,这是一个三维偏序问题,我们在树状数组中维护x+y的最大值,进而即可更新答案。可是这样做我们只是
weixin_30538029
·
2020-09-11 10:20
bzoj2716
[Violet 3]天使玩偶
2716:[Violet3]天使玩偶TimeLimit:80SecMemoryLimit:128MBSubmit:2160Solved:936[Submit][Status][Discuss]DescriptionInputOutputSampleInput10010081232716525844242595342962581497509718643472255288937754567229086
weixin_30528371
·
2020-09-11 04:22
BZOJ2716
天使玩偶
之前写过CDQ+线段树的,被惨烈地卡常卡了下来...所以决定改写KD-tree这里先放个代码占个坑,后面再写教程吧.#include#include#include#include#includenamespaceZeonfai{inlineintgetInt(){inta=0,sgn=1;charc;while(!isdigit(c=getchar()))if(c=='-')sgn*=-1;wh
weixin_30878501
·
2020-09-10 19:43
bzoj2716
[Violet 3]天使玩偶(CDQ分治)
前言:我们又回到了这道题,不过这次我们选择一个常数小一点的算法:CDQDescriptionInputOutputSampleInput100100812327165258442425953429625814975097186434722552889377545672290865456893878614569723857587645348854278353470812524979744339388
Coco_T_
·
2020-08-24 11:24
CDQ分治
bzoj2716
[ Violet 3 ] --cdq分治+树状数组
树状数组打错调了一个小时。。。对于点(x,y),其它点只会在他的左下、右下、左上、右上四个方向上。我们只需求在左下方向上就可以了,因为其他方向可以通过改变相对位置求得。考虑cdq分治。先按x坐标排序,然后将区间[l,r]分为[l,mid],[mid+1,r],因为只求左下方向上的点,所以可以去掉绝对值:dis=x+y-(x'+y')只需求x'+y'最大的点就可以了。求(X,Y)时将[l,mid]中
agsqv28660
·
2020-08-24 07:33
[
Bzoj2716
/2648]天使玩偶/SJY摆棋子
题意:平面上有一些点,之后还会在平面上插入一些点,还会询问某一个点到平面中最近的点的距离K−DtreeK−Dtree,最近的点像[SDOI2010]Hide[SDOI2010]HideandandSeekSeek这样求就好了然后这题是带插入的,和平衡树一样,可能会被卡掉然而K−DtreeK−Dtree又不能旋转,所以只能像替罪羊树那样重构了然后不会K−DtreeK−Dtree的看这里,再看这里,这
Kelin__
·
2020-08-24 05:13
K-Dtree
#
替罪羊树
Bzoj2716
[Violet 3]天使玩偶
TimeLimit:80SecMemoryLimit:128MBSubmit:1423Solved:602DescriptionInputOutputK-Dtree依旧是模板题1#include2#include3#include4#include5#include6usingnamespacestd;7constintINF=1e9;8constintmxn=500010;9intread(){
dezhen7015
·
2020-08-23 01:00
BZOJ2716
[Violet] 天使玩偶/SJY摆棋子
原题链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2716天使玩偶/SJY摆棋子题目描述Ayu在七年前曾经收到过一个天使玩偶,当时她把它当作时间囊埋在了地下。而七年后的今天,Ayu却忘了她把天使玩偶埋在了哪里,所以她决定仅凭一点模糊的记忆来寻找它。我们把Ayu生活的小镇看作一个二维平面坐标系,而Ayu会不定时地记起可能在某个点(xmy)埋下
ShadyPi
·
2020-08-11 11:12
线段树
CDQ分治
2019牛客第八场多校 D_Distance 三维BIT或定期重建套路
分析:比赛时听G黄说完题意感觉看似好像裸题,一道在二维平面上操作完全的题:
BZOJ2716
那么KD-Tree还是四维偏序问题呢?(原
Cwolf9
·
2019-08-10 22:00
[
BZOJ2716
][Violet 3]天使玩偶 CDQ分治+树状数组
按时间分治,把每个询问拆成四个方向的查询,这样曼哈顿距离可以直接用减法得到一维时间分治,二维x坐标排序,三维y坐标树状数组#include#includeusingnamespacestd;constintmaxn=1000000+10;constintINF=1000000000;intmax_x;intans[maxn];structBIT{intc[maxn];intlowbit(intx)
HbFS-
·
2017-04-23 20:44
CDQ分治
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他