傻逼数学题
题目描述

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

输入格式

第一行一个正整数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. [C#]常用开源项目

    [转][C#]常用开源项目 本文来自:http://www.cnblogs.com/sunxuchu/p/6047589.html Json.NET http://www.newtonsoft.com ...

  2. 2、spring boot 配置文件

    配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的: •application.properties •application.yml 配置文件的作用:修改SpringBoot自 ...

  3. 17-比赛1 A - Weak in the Middle (栈)

    题目描述 给定长度为 N 的序列 A.每天,序列 A 中所有比两侧元素都小的元素都会消失.对于原序列中所有元素,请求出它会在第几天之后消失(天数从 1 开始计算),或者指出它不会消失. 数据范围 1 ...

  4. 笔记-python-standard library-26.4 unittest

    笔记-python-standard library-26.4 unittest 1.      unittest source code:Lib/unittest/__init__.py 它是pyt ...

  5. 基于HDP版本的YDB安装部署(转)

    第三章 YDB依赖环境准备 一.硬件环境 硬件如何搭配,能做到比较高的性价比,不存在短板.合理的硬件搭配,对系统的稳定性也很关键. 1.CPU不是核数越高越好,性价比才是关键. 经常遇到很多的企业级客 ...

  6. BF算法(蛮力匹配算法)

    将主串M指定位置和目标串S开始位置进行对比,如果相同将M的下一个字符和S的下一个字符对比,如果不同则M的下一个字符和S的开始位置对比,直到S中每一个字符和M中的连续字符串相等,否则不匹配. C#代码- ...

  7. 孤荷凌寒自学python第六十二天学习mongoDB的基本操作并进行简单封装1

    孤荷凌寒自学python第六十二天学习mongoDB的基本操作并进行简单封装1 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第八天. 今天开始学习mongoDB的简单操作, ...

  8. (源)Post Material实现后期DitanceFog

    后期DitanceFog @Author: DaoZhang_XDZ@163.com @GameFrameWork: Base DZGameFrameWork [Branch GameClientFa ...

  9. STL之heap使用简介

    STL中并没有把heap作为一种容器组件,heap的实现亦需要更低一层的容器组件(诸如list,array,vector)作为其底层机制.Heap是一个类属算法,包含在algorithm头文件中.虽然 ...

  10. python3.6操作mysql

    1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql   回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...