hdu4717 The Moving Points 三分求函数最小值

01 ArcGIS空间分析--水文分析--利用水文分析方法提取山谷山脊线 ArcGIS空间分析的一个特别好的分析教程是汤国安老师的空间分析的内容。 实例与练习 练习1. 利用水文分析方法提取山脊、山谷线 1. 背景:山脊线、山谷线是地形特征线,它们对地形、地貌具有一定的控制作用。它们与山顶点、谷底点以及鞍部点等一起构成了地形及其起伏变化的骨架结构。因此在数字地形分析中,山脊线和山谷线以及 阅读详情

The Moving Points

Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1754    Accepted Submission(s): 696


Problem Description
There are N points in total. Every point moves in certain direction and certain speed. We want to know at what time that the largest distance between any two points would be minimum. And also, we require you to calculate that minimum distance. We guarantee that no two points will move in exactly same speed and direction.
 

Input
The rst line has a number T (T <= 10) , indicating the number of test cases.
For each test case, first line has a single number N (N <= 300), which is the number of points.
For next N lines, each come with four integers Xi, Yi, VXi and VYi (-106 <= Xi, Yi <= 106, -102 <= VXi , VYi <= 102), (Xi, Yi) is the position of the ith point, and (VXi , VYi) is its speed with direction. That is to say, after 1 second, this point will move to (Xi + VXi , Yi + VYi).
 

Output
For test case X, output "Case #X: " first, then output two numbers, rounded to 0.01, as the answer of time and distance.
 

Sample Input
2 2 0 0 1 0 2 0 -1 0 2 0 0 1 0 2 1 -1 0
 

Sample Output
Case #1: 1.00 0.00 Case #2: 1.00 1.00
 


将任意两点的距离公式写出来是一个开口向上的抛物线,然后所有的子函数都是一个开口向上的抛物线,他们取max肯定也是先减后增的,然后
就用三分法逐步逼近最低点就行,100次计算就完全可以满足精度要求了


#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

const int maxn = 300 + 10;

int T, N;

struct point {
	int x, y, vx, vy;
}p[maxn];

double MAX(double a, double b) {
	return a > b ? a : b;
}

double calc(double tm) {
	double ans = 0;
	for (int i = 0; i < N - 1; i++) {
		point a = p[i];
		for (int j = i + 1; j < N; j++) {
			point b = p[j];
			double X = (a.x - b.x) + tm * (a.vx - b.vx);
			double Y = (a.y - b.y) + tm * (a.vy - b.vy);
			ans = MAX(ans, X * X + Y * Y);
		}
	}
	return ans;
}

double getTime() {
	double l = 0.0, r = 1e6, mid, mmid;
	for (int i = 1; i <= 100; i++) {
		mid = (l + r) / 2;
		mmid = (mid + r) / 2;
		calc(mid) < calc(mmid) ? r = mmid : l = mid;
	}
	return mid;
}

int main()
{
	scanf("%d", &T);
	for (int t = 1; t <= T; t++) {
		scanf("%d", &N);
		for (int i = 0; i < N; i++) {
			scanf("%d%d%d%d", &p[i].x, &p[i].y, &p[i].vx, &p[i].vy);
		}
		double tm = getTime();
		printf("Case #%d: %.2f %.2f\n", t, tm, sqrt(calc(tm)));
	}
	return 0;
}




Nvidia Jetson AGX Orin 如何进入 Recovery Mode(刷机注意事项) Jetson Orin 如何进入Recovery mode + 刷机注意事项 阅读详情

相关推荐

倾斜摄影与激光点云融合建模:Photoscan+ContextCapture避坑指南

本文详细解析了倾斜摄影与激光点云融合建模的技术流程,重点介绍了使用Agisoft Metashape(原Photoscan)与ContextCapture进行数据融合的实战指南。文章深入探讨了数据预处理、坐标系统一、空三计算策略及在ContextCapture中进行点云配准等关键步骤,旨在帮助从业者规避常见陷阱,高效构建兼具高精度几何与真实纹理的三维实景模型。

weixin_29062613的博客 248

三分查找

可以用三分法求一个凸函数或者凹函数的最大或最小值。 主要思路是对整个区间进行三等分,切分点记为m1, m2,以凸函数为例,如果f(m1)>f(m2),最大值一定不会在 [m2, right],所以右界可以更新为m2,类似的,如果f(m1)<f(m2),最大值一定不会在 [left, m1],所以左界可以更新为m1,如果f(m1)==f(m2),则两个更新任选其一即可。 有...

dongchuan5097的博客 226

80MHz~100MHz频谱分析仪设计

由理论分析可知,经过乘法器后输出的信号为频率为w1+w2的高频信号和w1-w2的低频信号,除了想要采样的直流信号外,最小的信号频率为100kHz。因此,经过一系列推导可以得到该滤波器的元件C1,C2,C3,R1,R2的近似值分别为:C1=2.36nF,C2=32.1nF,C3=1.07nF,R1=1.39k,R2=2.84k。AK,此时的频率w2即为被测信号的频率,待测信号源电压幅度为,因此为了能达到直流采样的设计,我们将本振源的频率输出范围做成80~110 MHz,提高了题目的频率要求。

qq_48771816的博客 5242

【算法笔记】三分法

三分法通常用于求单峰函数的极值。那么,三分法具体是怎样一个算法呢?

red_donkey的博客 1082

Git Worktree + Claude Code:多终端并发开发完全实战

深入讲解如何使用 Git Worktree 配合多终端 Claude Code 实现并发开发,通过实战案例展示如何在 Android 开发中提升 2-3 倍效率,彻底告别等待 AI 的问题。

Cheson的专栏 1201

BUCK电路的大信号模型与小信号模型推导

推导开关电源信号模型的核心是将非线性开关过程线性化,常用。如需具体拓扑的推导细节,可进一步说明!

创新改变世界! 1165

2021-07-16

三分算法 利用三分法求最值 parabolic curve.(抛物线) 题意 下凸抛物线每一个x处的最大值的最小值(这些最大值属于一条新的下凸抛物线) 个人理解: 三分的区间不一定需要从中间分,只要分出三个区间,判断 l, r 大小关系即可 1. while(r-l > 1e-9) { // 以求下凸最小值为例 mid1 = (l+r)/2; mid2 = (mid1+r)/2; if(f(mid1) > f(mid2)) l = mid1; else r = mid2; }

一只养生的程序猿。 180

Windows下CMake编译VTK

选择项目INSTALL,生成该项目,得到vtk在Debug模式下的lib和dll文件,在文件夹中可看见,已得到debug模式下lib库与dll库。,把Value值设置为最后在vtk_sln中生成include、dll、lib的位置。在上面点击Configure后,红色区域没有了。选择自己vs编译平台的版本信息,我这边已经设置好了没有这个设置了,借用参考博客的图片。设置完后,点击左下角"Configure",然后等待Configure。,把搜索结果的Value勾选上。在search中搜索。

weixin_74239923的博客 841

三分求最小值——HDU3400

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3400 题目大意: 给定两条线AB和CD,现在要从A点,走到D点。 在线段上AB上走,速度是p,在线段CD,上走速度是q,在空间中其他地方走速度是r。 求所需的最小时间。 解题思路: 在线段AB上,任取一点E,A-E-CD的时间必定是一个关于点E的凹函数。 那么我们

sanmingzi3344的专栏 1110

单板电源设计(LDO、DC/DC)

高速电路设计的电源架构 在电路设计中,一块单板往往涉及多种电源,常见的如5V/3.3V/2.5V/1.8V/1.5V/1.2V/1V0.9V/0.75V等,如此多种类的电源不可能都直接通过背板从电源板获得。一般,单板仅有一种或者两种输入电源,如48V或12V,再由它们产生单板上器件所需要的电源。 单板如何由输入电源生成所需电源,常见有两种架构:集中式电源架构和分布式电源架构。 ...

sinat_15677011的博客 8326

Camunda 7.x 系列【22】全局监听器

Camunda支持义一个全局ExecutionListener和一个全局TaskListener,会捕获流程中发生的所有事件的通知,这样可以定义一个全局的审批人检查监听器,作用于所有用户任务。

记录知识、锤炼自我 2941

三分算法 — 解决凸凹函数的最值

转载:https://blog.youkuaiyun.com/pi9nc/article/details/9666627 概念: 在二分查找的基础上,在右区间(或左区间)再进行一次二分,这样的查找算法称为三分查找,也就是三分法。 二分查找所面向的搜索序列的要求是:具有单调性(不一定严格单调);没有单调性的序列不是使用二分查找。 与二分查找不同的是,三分法所面向的搜索序列的要求是:序列为一个凸凹性函数。...

KobeDuu 2931

项目篇 | 图书管理系统 | 管理员模块 | 概述

图书管理系统管理员模块概述

百栗.的博客 403

hdu 4717 The Moving Points(三分)

版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.youkuaiyun.com/u011328934/article/details/25829149 ...

weixin_30872499的博客 124

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

hdu 4717 The Moving Points(第一个三分题)

http://acm.hdu.edu.cn/showproblem.php?pid=4717 【题意】: 给N个点,给出N个点的方向和移动速度,求每个时刻N个点中任意两点的最大值中的最小值,以及取最小值的时刻 【题解】: 两个点为例,任意两个点,按照自己的方向移动,一般情况下是,先两点慢慢接近,直到最近距离,然后慢慢远离,后面越来越远,图像画出来有点像抛物线, 这题就是抛物线求...

diansitao5461的博客 148

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

hdu4717 The Moving Points 三分

给n个点,和每个

Broken Wings 755

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

HDU 4717 The Moving Points

题意:给定n个点,每个点有自己的移动速度和方向,求出某一个时间内的最大距离的最小值~~~~ 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 思路: 刚开始以为时间是整数,所以没理解为什么在最后的输出时浮点数的格式, 果断改掉,时间不一定是整数,从而三分解决~~~ 第一次使用三分,果断不熟,还好,,过掉 #i

我心中有猛虎 细嗅蔷薇 1178

The Moving Points HDU - 4717(三分)

There are N points in total. Every point moves in certain direction and certain speed. We want to know at what time that the largest distance between any two points would be minimum. And also, we requ...

starlet_kiss的博客 271

The Moving Points HDU - 4717 (三分)

There are N points in total. Every point moves in certain direction and certain speed. We want to know at what time that the largest distance between any two points would be minimum. And also, we requ

w571523631的博客 343

【The Moving Points】【HDU - 4717】(三分plus)

题目: There are N points in total. Every point moves in certain direction and certain speed. We want to know at what time that the largest distance between any two points would be minimum. And also, we...

哇哈哈哈的博客 333

HDU 4717 The Moving Points(三分)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 题意:给出n个点的坐标和运动速度(包括方向)。求一个时刻t使得该时刻时任意两点距离最大值最小。 思路:每两个点之间的距离随时间的变化是一个开口向上的抛物线。把所有的抛物线画出来。然后每个时刻取最大值。发现这个最大值是单峰函数。   struct point { doubl...

weixin_33841722的博客 137

The Moving Points -HDU 4717 三分

The Moving Points Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1192    Accepted Submission(s): 483 Problem Description There are

提比的强行AC 1004

HDU 4717 The Moving Points (三分 模板)

题目大意 有n个点,每个点的 的坐标为(xi,yi),1s后每个点的坐标 变为(xi+vxiyi+vyi),求什么时刻,两点间的最大距离最小; 知识点补充: 二分查找适用于单调函数中逼近求解某点的值。如果遇到凸性或凹形函数时,可以用三分查找求此凸点或凹点。 参考思路: 三分模板 思路分析: 设F(t)为t时间两点间的距离的最大值,答案就是求一个t时刻,使得F(t)最小; 三分时间,且可以思考F(t)是一个凹函数,保证要么起始时刻最小或者过了一段时间最小两种情况,这两种情况都可以求出 .

tokyo_re_tao的博客 223

hdu 4717 The Moving Points(三分)

The Moving Points Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 597    Accepted Submission(s): 243 Problem Description There are

街角的花街糖 960
上一篇: hdu1540 Tunnel Warfare 线段树区间合并
下一篇: PAT (Advanced Level) Practise 1114 Family Property (25) 并查集orDFS
Daemoonn
博客等级 码龄11年 42粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值