傻逼数学题
题目描述

由于乱码,复制不下来,只好截图了

输入格式

第一行一个正整数n

接下来n行每行两个整数x,y,表示第i个点的坐标

输出格式

一行一个数表示最小距离和,保留6位小数

样例输入

4

1 1

2 3

3 3

3 4

样例输出

3.414214

样例解释

数据约定

对于30%的数据,n<=400.

对于100%的数据,3<=n<=200000.

反思

这一题其实算是个原题了,就是昨天的最近点对,只不过我们需要寻找的变成了3个,思路都是差不多的,但是我就是觉得太复杂,所以没有去实现.所以在考场上我就只打了一个n三方的暴力,也就只拿了30pts,所以我们有任务千万别拖欠,一朝拖欠,就要付出惨痛的代价......

思路

就是原题啦,我们只需要在最近点对的基础改几个地方

1.边界条件(l+2==r)因为有3个

2.在越过中间寻找时,注意3重循环

代码
 #include<bits/stdc++.h>
#define ll long long
#define FOR(i,a,b) for(register int i=a;i<=b;i++)
#define ROF(i,a,b) for(register int i=a;i>=b;i--)
using namespace std;
int n;
const ll N=;
int tmpt[];
struct ss
{
double x;double y;
}pot[];
int scan()
{
int as=,f=;
char c=getchar();
while(c>''||c<''){if(c=='-') f=-;c=getchar();}
while(c>=''&&c<=''){as=(as<<)+(as<<)+c-'';c=getchar();}
return as*f;
}
bool cmp(ss i,ss j)
{
return i.x<j.x;
}
bool cmp2(int i,int j)
{
return pot[i].y<pot[j].y;
}
double dis(int i,int j)
{
double f=sqrt(double((pot[i].x-pot[j].x)*(pot[i].x-pot[j].x)+(pot[i].y-pot[j].y)*(pot[i].y-pot[j].y)));
return f;
}
double par(int l,int r)
{
// cout<<"y"<<endl;
double d=N;
if(l==r||l+==r) return d;
if(l+==r) return dis(l,r)+dis(l+,r)+dis(l+,l);
int mid=(l+r)>>;//除以2
double d1=par(l,mid);
double d2=par(mid+,r);
d=min(d1,d2);
int k=;
FOR(i,l,r)
{
if(abs(pot[i].x-pot[mid].x)<=d)
{
tmpt[++k]=i;//保存位置
}
}
sort(tmpt+,tmpt+k+,cmp2);
FOR(i,,k)
{
FOR(j,i+,k)
{
if(pot[tmpt[j]].y-pot[tmpt[i]].y>=d/) break;
FOR(j1,j+,k)
{
if(pot[tmpt[j1]].y-pot[tmpt[i]].y>=d/) break;
double d3=dis(tmpt[i],tmpt[j])+dis(tmpt[i],tmpt[j1])+dis(tmpt[j1],tmpt[j]);
d=min(d,d3);
}
}
}
return d;
}
int main()
{
// freopen("copy.in","r",stdin);
// freopen("copy.out","w",stdout);
n=scan();
FOR(i,,n)
{
scanf("%lf%lf",&pot[i].x,&pot[i].y);
}
sort(pot+,pot+n+,cmp);
double h=par(,n);
printf("%.6lf",h);//求1~n的最近点对
return ;
}

傻逼数学题(math)的更多相关文章

  1. OI中常犯的傻逼错误总结

    OI中常犯的傻逼错误总结 问题 解决方案 文件名出错,包括文件夹,程序文件名,输入输出文件名  复制pdf的名字  没有去掉调试信息  调试时在后面加个显眼的标记  数组开小,超过定义大小,maxn/ ...

  2. 傻逼Eclipse笔记

    Eclipse 这么傻逼的工具,还有人用,真是奇了怪了. Invalid project description 我想打开SVN 的代码 ,别让我拷到别的地方,怎么破? 正确答案是: 删除 Eclip ...

  3. BZOJ-1625 宝石手镯 01背包(傻逼题)

    傻逼题,懒得打,复制蛋蛋的.. 1625: [Usaco2007 Dec]宝石手镯 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1076 Solved: ...

  4. Codeforces Gym 100338I TV Show 傻逼DFS,傻逼题

    Problem I. TV ShowTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest ...

  5. BZOJ 2222: [Cqoi2006]猜数游戏【神奇的做法,傻逼题,猜结论】

    2222: [Cqoi2006]猜数游戏 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 604  Solved: 260[Submit][Status ...

  6. [BZOJ]4644: 经典傻逼题

    某天我觉得一切题目都是那么不可做,于是百度了一下"傻逼题"-- 题目大意:对于图中的任意一个点集(可以为空或者全集),所有恰好有一个端点在这个点集中的边组成的集合被称为割.一个割的 ...

  7. Expo大作战(三十一)--expo sdk api之Payments(expo中的支付),翻译这篇文章傻逼了,完全不符合国内用户,我只负责翻译大家可以略过!

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  8. 【题解】 bzoj2435: [Noi2011]道路修建 (傻逼题)

    bzoj2435,懒得复制,戳我戳我 Solution: 模拟即可(有点傻逼啊 Code: //It is coded by Ning_Mew on 5.13 #include<bits/std ...

  9. UVA11019 Matrix Matcher【hash傻逼题】【AC自动机好题】

    LINK1 LINK2 题目大意 让你在一个大小为\(n*m\)的矩阵中找大小是\(x*y\)的矩阵的出现次数 思路1:Hash hash思路及其傻逼 你把一维情况扩展一下 一维是一个bas,那你二维 ...

随机推荐

  1. 多通道CNN

    在读Convolutional Neural Networks for Sentence Classification 这个文章的时候,它在论文中提出一种模型变种就是 CNN-multichannel ...

  2. 4、spring boot 配置文件之profile

    Profile  1.多Profile文件 我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml 默认使用application.prop ...

  3. Docker使用入门

    docker images 查看本地镜像 docker ps -a  查询容器 docker ps -l  查询最近使用容器 docker rm CONTAINER_ID 删除容器 docker rm ...

  4. spark练习--统计xxx大学的各个少数名族的情况

    最近,有一份数据,是关于学校的数据,这个里面有所有学生的信息,今天闲来没事,我就想用spark的方式来读取文件,并且来统计这个学校的各个民族的情况,以前我用hadoop中mapReduce来计算,不得 ...

  5. TensorFlow验证码识别

    本节我们来用 TensorFlow 来实现一个深度学习模型,用来实现验证码识别的过程,这里我们识别的验证码是图形验证码,首先我们会用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别. 验 ...

  6. Python 外部函数调用库ctypes简介

    Table of Contents 1. 参考资料 2. ctypes简介 2.1. 数据类型 2.2. 调用.so/.dll 2.2.1. 加载动态链接库 2.2.2. 调用加载的函数 2.2.3. ...

  7. java.lang.RuntimeException: Handler (com.***.behavior.BEvent$1) {421bca80} sending message to a Hand

    java.lang.RuntimeException: Handler (com.***.behavior.BEvent$1) {421bca80} sending message to a Hand ...

  8. easyui js拼接html,class属性失效的问题

    问题:要在前一个按钮之后添加相同的样式的按钮,通过$("#cj").html(str); 这样的形式添加,却不能添加上样式 <div id="btn" c ...

  9. hbase shell出现ERROR:Can't get master address from Zookeeper;znode data==null

    hbase shell出现ERROR:Can't get master address from Zookeeper;znode data==null(ERROR:org.apache.hadoop. ...

  10. Android之SQLite总结

    SQLite 是一个轻量级的数据库,常用于各种嵌入式设备当中.android 提供了SQLiteOpenHelper的抽象类用于帮助开发数据库.在实际使用中经常定义一个类继承SQLiteOpenHel ...