A - Archery Tournament 动态开点+vecotor 神仙题
存图还是像矩形一样的存,每个节点存所在区级内部的圆的编号,然后暴力判断,开始我也有这个想法,但是。。。这TM也能过。。。仔细想想,貌似好像是可以过,时间复杂度玄学无法证明。。。。
#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
#include<set>
#include<vector>
#define LL long long
using namespace std;
const int maxx = 2e5+;
vector<int>v[maxx*];
int xx[maxx];
int yy[maxx];
struct node
{
int l,r;
} tree[maxx*];
int cnt;
int ans;
bool check(int x1,int y1,int x2,int y2)
{
return 1LL*(x1-x2)*(x1-x2)+1LL*(y1-y2)*(y1-y2)<1LL*y1*y1;
}
void buildtree(int &rt,int l,int r,int L,int R,int id)
{
if (!rt)
{
cnt++;
rt=cnt;
}
if (L<=l && r<=R)
{
v[rt].push_back(id);
return ;
}
int mid=(l+r)>>;
if (L<=mid)
{
buildtree(tree[rt].l,l,mid,L,R,id);
}
if (R>mid)
{
buildtree(tree[rt].r,mid+,r,L,R,id);
}
}
void query(int rt,int l,int r,int x,int y)
{
if (!rt)return;
for (auto it:v[rt])
{
if(check(xx[it],yy[it],x,y))
{
ans=it;
return ;
}
}
if (l==r)
{
return ;
}
int mid=(l+r)>>;
if (x<=mid)
{
query(tree[rt].l,l,mid,x,y);
}
else
{
query(tree[rt].r,mid+,r,x,y);
}
}
void update(int rt,int l,int r,int ul,int ur,int id)
{
if (ul>ur)return;
if (ul<=l && r<=ur)
{
vector<int>tmp;
for (auto it:v[rt])
{
if (it!=id)
{
tmp.push_back(it);
}
}
v[rt]=tmp;
return ;
}
int mid=(l+r)>>;
if (ul<=mid)
{
update(tree[rt].l,l,mid,ul,ur,id);
}
if (ur>mid)
{
update(tree[rt].r,mid+,r,ul,ur,id);
}
}
int main()
{
int t,op;
int rt;
while(~scanf("%d",&t))
{
cnt=;
rt=;
for (int i=; i<=t; i++)
{
scanf("%d%d%d",&op,&xx[i],&yy[i]);
if (op==)
{
buildtree(rt,-1e9,1e9,xx[i]-yy[i],xx[i]+yy[i],i);
}
else
{
ans=-;
query(rt,-1e9,1e9,xx[i],yy[i]);
printf("%d\n",ans);
if (ans!=-)
{
update(rt,-1e9,1e9,xx[ans]-yy[ans],xx[ans]+yy[ans],ans);
}
}
}
}
return ;
}
A - Archery Tournament 动态开点+vecotor 神仙题的更多相关文章
- [ZJOI2019]语言(树链剖分+动态开点线段树+启发式合并)
首先,对于从每个点出发的路径,答案一定是过这个点的路径所覆盖的点数.然后可以做树上差分,对每个点记录路径产生总贡献,然后做一个树剖维护,对每个点维护一个动态开点线段树.最后再从根节点开始做一遍dfs, ...
- 【模板】【P3605】【USACO17JAN】Promotion Counting 晋升者计数——动态开点和线段树合并(树状数组/主席树)
(题面来自Luogu) 题目描述 奶牛们又一次试图创建一家创业公司,还是没有从过去的经验中吸取教训--牛是可怕的管理者! 为了方便,把奶牛从 1⋯N(1≤N≤100,000) 编号,把公司组织成一棵树 ...
- [2016湖南长沙培训Day4][前鬼后鬼的守护 chen] (动态开点线段树+中位数 or 动规 or 贪心+堆优化)
题目大意 给定一个长度为n的正整数序列,令修改一个数的代价为修改前后两个数的绝对值之差,求用最小代价将序列转换为不减序列. 其中,n满足小于500000,序列中的正整数小于10^9 题解(引自mzx神 ...
- [bzoj 3531][SDOI2014]旅行(树链剖分+动态开点线段树)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3531 分析: 对于每个颜色(颜色<=10^5)都建立一颗线段树 什么!那么不是M ...
- 【BZOJ-4636】蒟蒻的数列 动态开点线段树 ||(离散化) + 标记永久化
4636: 蒟蒻的数列 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 247 Solved: 113[Submit][Status][Discuss ...
- CF731C Socks并查集(森林),连边,贪心,森林遍历方式,动态开点释放内存
http://codeforces.com/problemset/problem/731/C 这个题的题意是..小明的妈妈给小明留下了n只袜子,给你一个大小为n的颜色序列c 代表第i只袜子的颜色,小明 ...
- 【BZOJ3531】[Sdoi2014]旅行 树链剖分+动态开点线段树
[BZOJ3531][Sdoi2014]旅行 Description S国有N个城市,编号从1到N.城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市.每个城市信仰不同的宗教,如飞天 ...
- BZOJ_4636_蒟蒻的数列_线段树+动态开点
BZOJ_4636_蒟蒻的数列_线段树+动态开点 Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将 ...
- codeforces 893F - Physical Education Lessons 动态开点线段树合并
https://codeforces.com/contest/893/problem/F 题意: 给一个有根树, 多次查询,每次查询对于$x$i点的子树中,距离$x$小于等于$k$的所有点中权值最小的 ...
随机推荐
- 20190815-$N \Theta IP$
$NOIP$ 请选择您想测试的难度: 「困难」 「困难的地狱」 「能被神犇切掉的」 「你做不出来的」 「简单(完成前面所有后解锁)」 要难死了-- 考试过程: 首先看看三道题: 这是NOIP模拟测试? ...
- 解决github下载慢的终极方法
直接用ssr代理,使用全局代理. 下载墙外的软件,都可以,比如 GithubDsktop
- git中的错误
! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@gitee.co ...
- 数据库完整性 ch.5
数据库的完整性 是指 数据的正确性(correctness) 和 相容性 (compat-ability) 5.1 实体完整性 定义 对单属性码的说明有两种方法,一种是定义为表约束条件,一种是定义为列 ...
- python 线性代数模块linalg
- map.(parseInt)方法详解
偶然间碰到这样一个问题: ["1","2", "3"].map(parseInt) //[ 1, NaN, NaN ] 运行结果 [ 1, ...
- Spring_Hibernate
Spring与Hiberante整合 通过hibernate的学习,我们知道,hibernate主要在hibernate.cfg.xml配置文件中 接下来我们看一下hibernate的一个配置文件 h ...
- excel怎么制作三维圆环图表
excel怎么制作三维圆环图表 excel怎么制作三维圆环图表?excel中想要制作一个三维圆环图表,该怎么制作呢?下面我们就来看看详细的教程,很简单,在Excel中,可以通过自带的圆环图功能生成二维 ...
- 深入浅出Javascript闭包
一.引子 闭包(closure)是 Javascript 语言的一个难点,面试时常被问及,也是它的特色,很多高级应用都要依靠闭包实现.本文尽可能用简单易懂的话,讲清楚闭包的概念.形成条件及其常见的面试 ...
- OSGi教程:Resource API Specification
此教程基于OSGi Core Release 7 OSGi Resource API规范 详细内容上面英文教程有详细解答 下面主要是一些个人见解,若有不当之处,欢迎指出: Resource:就是能够被 ...