按距离建立线段树,维护区间重量最小值

然后跑一遍拓扑,每次将所有能取的加入队尾

#include<cstdio>
#include<algorithm>
#define N 250010
typedef long long ll;
int n,i,x0,y0,nowp,x,y,r,c,v[N<<2],tmp,h=1,t,q[N];ll nowr;
struct P{int m,p;ll d,r;}a[N];
inline bool cmp(P x,P y){return x.d<y.d;}
inline void read(int&a){
char c;bool f=0;a=0;
while(!((((c=getchar())>='0')&&(c<='9'))||(c=='-')));
if(c!='-')a=c-'0';else f=1;
while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';
if(f)a=-a;
}
inline ll sqr(ll x){return x*x;}
inline int lower(){
int l=1,r=n,t=0,mid;
while(l<=r)if(a[mid=(l+r)>>1].d<=nowr)l=(t=mid)+1;else r=mid-1;
return t;
}
inline int merge(int x,int y){
if(!x)return y;
if(!y)return x;
return a[x].m<a[y].m?x:y;
}
inline void up(int x){v[x]=merge(v[x<<1],v[x<<1|1]);}
void build(int x,int a,int b){
if(a==b){v[x]=a;return;}
int mid=(a+b)>>1;
build(x<<1,a,mid),build(x<<1|1,mid+1,b),up(x);
}
void change(int x,int a,int b,int c){
if(a==b){v[x]=0;return;}
int mid=(a+b)>>1;
c<=mid?change(x<<1,a,mid,c):change(x<<1|1,mid+1,b,c);
up(x);
}
void ask(int x,int a,int b){
if(b<=c){tmp=merge(tmp,v[x]);return;}
int mid=(a+b)>>1;
ask(x<<1,a,mid);
if(c>mid)ask(x<<1|1,mid+1,b);
}
int main(){
read(x0),read(y0),read(nowp),read(r),read(n),nowr=sqr(r);
for(i=1;i<=n;i++){
read(x),read(y),read(a[i].m),read(a[i].p),read(r);
a[i].d=sqr(x-x0)+sqr(y-y0),a[i].r=sqr(r);
}
std::sort(a+1,a+n+1,cmp),build(1,1,n);
if(c=lower())while(1){
tmp=0,ask(1,1,n);
if(!tmp||a[tmp].m>nowp)break;
change(1,1,n,q[++t]=tmp);
}
while(h<=t){
nowp=a[q[h]].p,nowr=a[q[h++]].r;
if(c=lower())while(1){
tmp=0,ask(1,1,n);
if(!tmp||a[tmp].m>nowp)break;
change(1,1,n,q[++t]=tmp);
}
}
return printf("%d",t),0;
}

  

BZOJ3276 : 磁力的更多相关文章

  1. bzoj3276磁力 两种要求下的最大值:分块or线段树+拓扑

    进阶指南上的做法是分块的.. 但是线段树搞起来也挺快,将磁石按照距离排序,建立线段树,结点维护区间质量最小值的下标 进行拓扑,每次在可行的范围内在线段树中找到质量最小的下标取出,取出后再将线段树对应的 ...

  2. [教程]怎么用百度云观看和下载"磁力链接"无需下载直接观看.

    1, 打开网址 http://okbt.net/  输入你想要看的电影名字, 点搜索,鼠标右键点击拷贝磁力链接.或者 电脑装了迅雷的话.可以直接点击.用迅雷下载. 磁力链接都是这种格式的.例: mag ...

  3. 开源磁力搜索爬虫dhtspider原理解析

    开源地址:https://github.com/callmelanmao/dhtspider. 开源的dht爬虫已经有很多了,有php版本的,python版本的和nodejs版本.经过一些测试,发现还 ...

  4. 用ubuntu下载电影:磁力链接,torrent,迅雷链接

    用ubuntu下载电影:磁力链接,torrent,迅雷链接 操作系统:Ubuntu 14.04 64位 需要软件:Ktorent, Amule 安装软件: sudo apt-get install k ...

  5. [搜片神器]使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)

    谢谢园子朋友的支持,已经找到个VPS进行测试,国外的服务器:http://www.sosobta.com   大家可以给提点意见... 出售商业网站代码,万元起,非诚勿扰,谢谢. 联系h31h31 a ...

  6. [转载]用.NET开发的磁力搜索引擎——Btbook.net

    去年10月份开始研究相关的协议与资料,中途乱七八糟的事情差点没坚持下来,寒假里修修补补上礼拜把Btbook发布了,经过社交网络的推广之后,上线第三天UV就达到了两万多,也算是对这几个月工作的一点肯定吧 ...

  7. 利用迅雷提供的接口从磁力链得到bt种子文件

    本地下载工具的磁力链下载速度不给力,而百度云盘有提供离线下载服务,相当于就是直接到服务器取个链接而已.但这需要bt文件,而我只有链力链.网上搜了一下,可以从磁力链构造一个bt文件的下载地址,用pyth ...

  8. 使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)

    使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源) 先直接上程序界面,了解整体工作流程是什么样子的,求服务器进行挂机测试,需要固定IP,空间大概需要10G左右(主要是BT种子占用空间 ...

  9. 据磁力链获得BT种子

    最近研究了一下磁力链magnet和BT种子torrent文件之间的相互转换.其实通过torrent文件获得磁力链实现起来比较简单,但反过来并非是一个可逆的过程,磁力链转BT种子理论上来说是不可能实现的 ...

随机推荐

  1. [codeforces 241]C. Mirror Box

    [codeforces 241]C. Mirror Box 试题描述 Mirror Box is a name of a popular game in the Iranian National Am ...

  2. [BZOJ3672][UOJ#7][NOI2014]购票

    [BZOJ3672][UOJ#7][NOI2014]购票 试题描述  今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参加这次盛会.       ...

  3. DCMTK3.6.0 (MT支持库)安装 完整说明

    环境WIN7 + VisualStudio2010 + dcmtk3.6.0 + Cmake2.8.6 准备工作: 从dcmtk官方网站下载源代码及支持库文件.分别名为:dcmtk-3.6.0 dcm ...

  4. 37.寻找丑数[Ugly numbers]

    [题目] 我们把只包含质因子2.3和5的数称作丑数(Ugly Number),例如:2,3,4,5,6,8,9,10,12,15,等,习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第1500个丑 ...

  5. Android开发之模拟器的选择

    在做Android app开发的时候由于机器配置不是特别高,而Android自带的模拟器非常耗资源,性能极其差.所以常常由于模拟器性能差而抓狂,相信不少开发者都会面临和我一样的问题.于是换了一台平常很 ...

  6. Java for LeetCode 029 Divide Two Integers

    Divide two integers without using multiplication, division and mod operator. If it is overflow, retu ...

  7. Mac OS Ruby安装 使用RVM

    访问http://www.ruby-lang.org/en/downloads/ 使用第三方工具安装ruby,经过了解,在mac下可以使用macports和rvm安装ruby. 经过实际操作觉得rvm ...

  8. 一、HTML和CSS基础--网页布局--实践--导航条菜单的制作

    案例一:导航菜单的制作 垂直菜单

  9. 移动App该如何保存用户密码(转)

    原文地址:http://blog.csdn.net/hengyunabc/article/details/34623957 移动App该如何保存用户密码? 这个实际上和桌面程序是一样的. 先看下一些软 ...

  10. Asp.net MVC 利用自定义RouteHandler来防止图片盗链

    你曾经注意过在你服务器请求日志中多了很多对图片资源的请求吗?这可能是有人在他们的网站中盗链了你的图片所致,这会占用你的服务器带宽.下面这种方法可以告诉你如何在ASP.NET MVC中实现一个自定义Ro ...