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

辽源网站建设wordpress1003无标题

辽源网站建设,wordpress1003无标题,连锁酒店设计网站建设,宁夏 网站开发westte文章目录题目描述数据范围解析代码图片转载自#xff1a; https://blog.csdn.net/weixin_43346722/article/details/118435430题目描述 平面上有 n个点#xff0c;用n个大小相同的圆分别将一个点作为圆心#xff0c;同时满足圆圈不相交#xff0c;求圆的最大半径。 数据范… 文章目录题目描述数据范围解析代码图片转载自 https://blog.csdn.net/weixin_43346722/article/details/118435430题目描述 平面上有 n个点用n个大小相同的圆分别将一个点作为圆心同时满足圆圈不相交求圆的最大半径。 数据范围 2n2e52n2e52n2e5 解析 把题目抽象一下就是求最小的一对点的距离除以2 考虑如何求呢 暴力当然是会T飞的 首先把所有点按x排序 然后考虑分治 分治的关键是如何把两个小问题合并 暴力合并还是n方… 我们考虑剪掉一些不必要的比较 设两边分别得到的答案的最小值为a 那么x距离大于a的肯定不用比了 但是一旦x的距离全在a里面咋办 同理我们按y再排一下序y的距离大于a都不用算了 那么每个点对应的的计算范围大概就是这样 那么这样就不会有很多点了吗 我们还有一个了一个关键性质左边和右边的点各自之间的距离都不小于a 那么右边这个矩形里能填的两两距离不小于a的点就不多了 关于这个我们就要使用神奇的鸽巢原理 考虑矩形按照下面这个图分区 每个小矩形的对角线长度小于a所以每个矩形最多有一个点 所以大矩形内的点不超过6个 同时我们把6个点放到四角和两长边的终点其实也就可以构造出6个的方案 所以我们每个点需要计算的点最多不超过6个 时间复杂度降为线性问题得以解决 整体复杂度nlognnlognnlogn每次合并按ysort可能再大一些 代码 #includebits/stdc.h using namespace std; const int N2e5100; const int M2e6100; #define ll long long ll read(){ll x0,f1;char cgetchar();while(!isdigit(c)){if(c-)f-1;cgetchar();};while(isdigit(c)){xx*10c-0;cgetchar();};return x*f; } int n,m; struct node{double x,y; }p[N],tmp[N],now[N]; bool cmpx(node a,node b){return a.xb.x;} bool cmpy(node a,node b){return a.yb.y;} double dis(node a,node b){//printf( dis:);print(a);print(b);printf(%lf%lf%lf)return sqrt((a.x-b.x)*(a.x-b.x)(a.y-b.y)*(a.y-b.y)); } void print(node o){printf((%.2lf %.2lf),o.x,o.y);} double solve(int l,int r){if(lr) return 2e9;int mid(lr)1;double resmin(solve(l,mid),solve(mid1,r));int num0,tot0;for(int imid1;ir;i){if(p[i].x-p[mid].xres) break;tmp[num]p[i];//printf(tmp:);print(p[i]);putchar(\n);}for(int imid;il;i--){if(p[mid1].x-p[i].xres) break;now[tot]p[i];//printf(now:);print(p[i]);putchar(\n);}sort(tmp1,tmp1num,cmpy);sort(now1,now1tot,cmpy);int pre1;for(int i1;itotprenum;i){while(prenumnow[i].y-tmp[pre].yres) pre;for(int jpre;tmp[j].y-now[i].yresjnum;j){//printf(i%d j%d dis%.2lf,i,j,dis(now[i],tmp[j]));print(now[i]);print(tmp[j]);putchar(\n);resmin(res,dis(now[i],tmp[j]));}}return res; } int main(){while(1){nread();if(n0) return 0;for(int i1;in;i){scanf(%lf%lf,p[i].x,p[i].y);}sort(p1,p1n,cmpx);printf(%.2lf\n,solve(1,n)/2);}return 0; } /* 2 0 0 1 1 2 1 1 1 1 3 -1.5 0 0 0 0 1.5 0 */
http://wiki.neutronadmin.com/news/221581/

相关文章:

  • 网站制作时间代码电脑版和手机版网站怎么做
  • 网站视频转码软件杭州公司注册费用
  • 长沙 php企业网站系统wordpress 后台 重定向循环
  • 网站后台怎样推荐图片怎么找到那个网站
  • 上海网站建设专业公司国际贸易综合服务平台
  • 制作流程图的网站wordpress 文件结构
  • 怎么用自己的网站做邮箱企业建站套餐价格表
  • 管理系统网站镇海seo专业优化平台
  • 文山知名网站建设公司wordpress评分中文版
  • jsp做网站黑河做网站的公司
  • 网站建设怎样中英文wordpress 注册会员默认权限
  • 重庆本地网站有哪些全国政务网站哪家做的好
  • 宁波网站建设seo网站开发设计大概多少费用
  • 企业网站 三网系统百度应用平台
  • 各行各业网站建设服务周到h5
  • 网站建设幻灯片背景图片素材wordpress本地很慢
  • 重庆承越网站制作公司安全文化建设方案细则
  • 做视频哪个网站素材好做网站公司宁波
  • 建设公司网站账务处理wordpress插件目录下
  • 网页制作与网站建设教程视频nike网站建设分析
  • 网站服务器查找国外wordpress主题交易平台
  • 哈尔滨自助建站网站系统阿里巴巴外贸平台是什么
  • 食品电子商务网站建设论文织梦修改网站主页
  • 招聘网站建设规划书wordpress怎么禁google
  • 做策划常用的网站微信公众号商城制作
  • 0基础如何做网站网站设计与管理方向
  • 建网站 免费网站建设 赣icp 南昌
  • 塘沽网站优化做视频网站
  • 做一个网站页面多少钱ui培训报名
  • 简单网页尝试做教案十堰seo推广