codeforces Cable Connection
我的思路很暴力
直接枚举斜率[-100000,0]之间,然后设置一个非常远的直线,对所有点扫一遍,确定一个离这条直线最近的点P。
用点P和斜率k来创建cable,并用cable的距离来relax答案。
现在问题在于,怎么来枚举k,如果直接枚举,设置步长的话,不是超时就是精度不足。
因此我们需要想个办法来枚举k。
我们先枚举0,10000,20000,...,100000找到一个最优答案,假设是20000
那么我们再枚举21000,22000.....,29000以及19000,18000,...11000这些数,找到一个最优的,这样一直找下去,总会找到k。
枚举的时间复杂度为O(10*迭代深度)
具体原理看我下一篇文章。
这道题目卡精度,注意了
代码:
#include <cstdio>
#include <cmath>
using namespace std;
const int maxn = 1e6+7;
const double INF = 1e18;
struct Point{
int x,y;
}Ps[maxn];
int n;
int check(double k){
double t = INF;
int mark = 0;
for(int i = 0;i < n;++i){
if(abs(k*Ps[i].x-Ps[i].y+(1-k)*10000) < t){
t = abs(k*Ps[i].x-Ps[i].y+(1-k)*10000);
mark = i;
}
}
return mark;
}
double getans(double k,int id){
double a = -k*Ps[id].x + Ps[id].y;
double b = -Ps[id].y/k+Ps[id].x;
return a*a+b*b;
}
double f(double k){
int id = check(-k);
double ans = getans(-k,id);
return ans;
}
double csf(double l,double r,int n = 6,double eps = 0.0000001){
double x;
while(r - l > eps){
double step = (r-l)/(n+1);
double mx = INF;
for(double i = l+step;i < r;i += step) {
double t = f(i);
if(mx > t){
mx = t;
x = i;
}
}
l = x-step;
r = x+step;
}
return l;
}
int main(){
while(scanf("%d",&n)!=EOF){
for(int i = 0;i < n;++i){
scanf("%d %d",&Ps[i].x,&Ps[i].y);
}
double k = csf(0,10000,4);
printf("%.3lf\n",sqrt(f(k)));
}
return 0;
}
codeforces Cable Connection相关推荐
- Xilinx Platform Cable USB II 下载器驱动安装教程——Win10
一. Xilinx JTAG下载器 二. 问题描述 下载器连上电脑后,在设备管理中显示为 其它设备 -> 未知设备,或者是 Programming cables -> Xilinx Pla ...
- impact检测cable失败
之前遇到过的问题,纠结很久,看大家是否遇到一样的,分享出来 换了台电脑,win10, B210, impact突然检测不到cable,之前是好的,报错: WARNING:iMPACT:923 - Ca ...
- NTRIP/ SUPL
1. NTRIP - Network transport of RTCM via Internet NTRIP version 1.0: http://igs.bkg.bund.de/index_n ...
- cpu开机就是60℃_铅锤哥:十五种电脑开机黑屏的原因与解决思路
点击上面↑ 玩转电脑 关注铅锤哥,轻松学电脑 最近,很多朋友联系铅锤哥,由于疫情影响不能出门,很多同学只能把家里闲置很久的电脑拿出来办公或者上课,但是一开机,发现电脑黑屏没法用了. 一般常说的黑屏故障 ...
- word20161207
DHCPRELEASE, DHCP release message / DHCP 释放消息 DHCPREQUEST, DHCP request message / DHCP 请求消息 dial 拨号位 ...
- linux wine 性能,Wine 1.9.16 发布,改善 GDI 性能
Wine 1.9.16 最近发布下载,配备了大量的新功能,改进和错误修正.显着的更新包括在MacOS下能更好与64位二进制兼容性,提升JavaScript性能,对Direct3D的改进,在Direct ...
- 应用filestream设置时存在未知错误_开机黑屏?常见启动黑屏错误的中文解释!学习电脑知识电脑小匠...
第一种:没有报错的错 网卡启动 这个实际上并没有报错误信息,而是跳到网卡启动了,不太懂英文的注意几个关键词:CLIENT MAC ADDR,这种情况是电脑没有检测到启动设备,然后跳到最后的网卡启动了, ...
- 电脑可以开机但是黑屏_铅锤哥:十五种电脑开机黑屏的原因与解决思路
点击上面↑ 玩转电脑 关注铅锤哥,轻松学电脑 最近,很多朋友联系铅锤哥,由于疫情影响不能出门,很多同学只能把家里闲置很久的电脑拿出来办公或者上课,但是一开机,发现电脑黑屏没法用了. 一般常说的黑屏故障 ...
- FPGA--------随笔总结(持续更新)
目录 1,写博客尽可能需要的步骤目录 2,对于ISE中锁相环复位信号的使用 3,信号的延时测试 4,安装检测不到驱动 5,ISE下启动SDK 6,开发板器件型号的选择 1,写博客尽可能需要的步骤目录 ...
最新文章
- preempt_count详解
- SAP Spartacus SpartacusB2cConfigurationModule 的使用场景
- luogu P2257 YY的GCD
- 关于腾讯云丢数据事件的一些看法
- 例子---JS无缝轮播图
- python高清大图代码_python2的代码从吉卜力网页上下载高清图片
- 前端会有什么新的变化
- 编写led驱动及其实验过程
- sop封装与dip封装的语音芯片有何区别?
- AdobeFlashPlayer.资料
- SDN之旅—mininet(在Windows系统上)安装
- 微信小程序服务器和app互通,解读:App 与小程序的互通能力和限制
- 2021.12.13 - 176.保持城市天际线
- Dongxiexidu
- 来自#Devoxx 2014的WebSocket螺母和螺栓的幻灯片
- 2022-2028年中国折叠椅行业发展策略分析及投资前景研究报告
- Python两台电脑实现TCP通信
- Bessie Goes Moo(暴力)
- 详解 - RS232、RS422、RS485 联系与区别
- 南京大学计算机系本科生开放日,2018/7
热门文章
- 添加图标_win10系统轻松添加显示桌面图标的操作方法
- java控制系统音量_Java 控制 Windows 系统音量-Go语言中文社区
- 电子工程系庆贺电贺信_创造下一代光电子集成电路
- Java手写Hashmap(HashMap的基本用法)
- linux开发亿连手机互联,亿连手机互联车载版下载-亿连手机互联车机版v6.6.1 安卓版-腾牛安卓网...
- [Java基础]比较器排序Comparator的使用
- [剑指offer]面试题13:在O(1)时间删除链表结点
- hdu1276 士兵队列训练问题-list容器
- 蓝桥杯2017初赛-打印大X-找规律
- 数据结构(哈夫曼树,哈夫曼编码)入门篇,JAVA实现