当前位置: 首页 > news >正文

女生做网站主题有哪些/百度权重等级

女生做网站主题有哪些,百度权重等级,url转发网站,开发网站 数据库题面: https://www.luogu.org/problemnew/show/P2093 https://darkbzoj.cf/problem/2626 思路: 算是kd-tree裸题,对于查询的数维护含k个数的小根堆,这个堆中装的是距离最大的k个数 WA了挺久,有一些情况要注意 1.堆中存…

题面:

https://www.luogu.org/problemnew/show/P2093

https://darkbzoj.cf/problem/2626

 

思路:

算是kd-tree裸题,对于查询的数维护含k个数的小根堆,这个堆中装的是距离最大的k个数

WA了挺久,有一些情况要注意

1.堆中存放的要是一个结构体,bh为编号,val为距离,只能定义 ' < ',且默认大根堆,我们不妨反过来定义,详情见程序

2.p[i]虽然一开始是有序的,但建树的时候就把顺序打乱了,不能轻易认为p[i]中的i就是第i个节点,要再保存一个p[i].bh记录的才是编号

3.本来query中是否向儿子管辖区域找我写的是val>=即可,结果TLE,所以要优化一下,顶一个数组mbh[i],存管辖范围内最小编号,用法参照mn[i],mx[i]

 

#include<bits/stdc++.h>
#define lc (ch[x][0])
#define rc (ch[x][1])
#define ll long long
using namespace std;
const int maxn=1e6+4;
int n,m;
ll mn[maxn][2],mx[maxn][2],ch[maxn][2],mbh[maxn];
int nthdir;
struct node{int bh;ll val;bool operator < (const node &no) const{if(no.val==val) return bh<no.bh;return val>no.val;}node(int x,long long y){bh=x;val=y;}
};
priority_queue<node>q;
inline ll sq(ll x){return (ll)x*x;
}
struct Point{ll pos[2];int bh;ll& operator [](int x){return pos[x];}bool operator < (const Point &t) const {return pos[nthdir] < t.pos[nthdir];}ll operator - (const Point &t) const {return (ll)sq(pos[0]-t.pos[0])+(ll)sq(pos[1]-t.pos[1]);}Point(ll x,ll y,int b){pos[0]=x;pos[1]=y;bh=b;}Point(){};
}p[maxn];
inline void pushup(int x){for(int i=0;i<=1;i++){mn[x][i]=mx[x][i]=p[x][i];mbh[x]=p[x].bh;if(lc){mn[x][i]=min(mn[x][i],mn[lc][i]);mx[x][i]=max(mx[x][i],mx[lc][i]);mbh[x]=min(mbh[x],mbh[lc]);}if(rc){mn[x][i]=min(mn[x][i],mn[rc][i]);mx[x][i]=max(mx[x][i],mx[rc][i]);mbh[x]=min(mbh[x],mbh[rc]);}}
}
inline int build(int l,int r,int dir){nthdir=dir;int x=(l+r)>>1;nth_element(p+l,p+x,p+r+1);if(l<x) lc=build(l,x-1,dir^1);if(r>x) rc=build(x+1,r,dir^1);pushup(x);return x;
}
inline ll calc(int x,Point P){return max((ll)sq(mn[x][0]-P[0]),(ll)sq(mx[x][0]-P[0]))+max((ll)sq(mn[x][1]-P[1]),(ll)sq(mx[x][1]-P[1]));
}
inline void query(int x,Point P){ll h=P-p[x];if(node(p[x].bh,h) < q.top()){q.pop();q.push(node(p[x].bh,h));}ll l=-(maxn<<1),r=-(maxn<<1);if(lc) l=calc(lc,P);if(rc) r=calc(rc,P);if(l>r){if(node(mbh[lc],l)<q.top()) query(lc,P);if(node(mbh[rc],r)<q.top()) query(rc,P);//上面和下面这两组语句等价 //if(q.top().val<l||(q.top().val==l&&q.top().bh>mbh[lc])) query(lc,P);//if(q.top().val<r||(q.top().val==r&&q.top().bh>mbh[rc])) query(rc,P);}else{if(node(mbh[rc],r)<q.top()) query(rc,P);if(node(mbh[lc],l)<q.top()) query(lc,P);//if(q.top().val<r||(q.top().val==r&&q.top().bh>mbh[rc])) query(rc,P);//if(q.top().val<l||(q.top().val==l&&q.top().bh>mbh[lc])) query(lc,P);
    }
}
int main(){memset(mn,0x3f,sizeof(mn));memset(mx,0xc0,sizeof(mx));scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%lld%lld",&p[i][0],&p[i][1]),p[i].bh=i;int rt=build(1,n,0);scanf("%d",&m);while(m--){int x,y,k;scanf("%lld%lld%d",&x,&y,&k);while(!q.empty()) q.pop();for(int i=1;i<=k;i++) q.push(node(0,-maxn));query(rt,Point(x,y,0));printf("%d\n",(q.top()).bh);}return 0;
}

 

转载于:https://www.cnblogs.com/wifimonster/p/10514221.html

http://www.lbrq.cn/news/957835.html

相关文章:

  • 医疗网站的建设设计要注意什么/seo短视频网页入口引流下载
  • 杭州政府网站建设/seo培训中心
  • 杭州做网站电话/网站优化团队
  • 滁州项目建设公示在哪个网站/哈尔滨seo关键词优化
  • 视频网站VIP卡怎么做赠品/点击器免费版
  • 手机制作网站软件/宁波网站推广怎么做
  • 新乡新手学做网站/网络营销技巧培训
  • 山东法院网站哪个公司做的/流量网站
  • 建设网站价钱/sem优化公司
  • 做电影网站涉及的侵权问题/中文搜索引擎
  • 安徽建设网站公司/seo免费推广软件
  • 网站开发留学/快速提升网站排名
  • 网站维护技术/外链发布平台
  • 苹果软件做ppt下载网站有哪些/网络推广平台代理
  • 十堰秦楚网 十堰新闻门户网站/账户竞价托管哪里好
  • 大庆油田app下载安装官方版/seo发包排名软件
  • 网站源码上传/惠州自动seo
  • 外贸网站代运营/搜索优化网络推广
  • 学校网站制作模板/西安网站制作价格
  • app网站怎么下载/博客推广的方法与技巧
  • 宜昌教育培训网站建设/优化设计单元测试卷
  • 长沙做网站开发价格/成都百度推广联系方式
  • 导购网站自己做电商/网站模板平台资源
  • ghostwin8网站奖别人做/长春头条新闻今天
  • 做户外运动的网站/青岛seo招聘
  • 网站建设需要什么基础/软文广告经典案例200字
  • 美工免费素材网站/seo是什么意思为什么要做seo
  • 网站建设介绍怎么写/可以看任何网站的浏览器
  • wordpress 导出菜单/宁波网站推广优化公司电话
  • 腾讯文件怎么转换wordpress/兰州搜索引擎优化
  • leetcode_121 买卖股票的最佳时期
  • QT窗口(7)-QColorDiag
  • Django接口自动化平台实现(三)
  • Kubernetes常用命令总结
  • AI编程工具对比:Cursor、GitHub Copilot与Claude Code
  • Jenkins自动化部署.NET应用实战:Docker+私有仓库+SSH远程发布