HDU4714+三分
题意:给定N个点,每个点有初始位置和初始速度。
问:在哪个时刻 使得所有的点的最大距离值最小。
分析:一开始枚举两两之间的最大值,然后在最大值中求一个最小值。。。(WA:题意严重理解不清。。)
由两点之间的距离公式(与T一个系数有关)可知,这个公式是典型的抛物线,因此可以进行三分查找答案,正解!
/*
wa
*/
#include<algorithm>
#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<queue>
#include<stack>
#include<map>
#include<set>
using namespace std;
typedef long long int64;
//typedef __int64 int64;
typedef pair<int64,int64> PII;
#define MP(a,b) make_pair((a),(b))
const double inf = 9999999999.0;
const double inf2 = 1.0*(1e8);
const double pi=acos(-1.0);
const int dx[]={,-,,};
const int dy[]={,,,-};
const double eps = 1e-;
const int maxm = ;
const int maxn = ; struct NODE{
double t,d;
}mat[ maxn ][ maxn ];
struct Point{
double x,y;
double vx,vy;
}pnt[ maxn ]; double solve( double t,int n ){
double dis = ;
for( int i=;i<n;i++ ){
for( int j=i+;j<n;j++ ){
dis = max( dis, (pnt[i].x-pnt[j].x+pnt[i].vx*t-pnt[j].vx*t)*(pnt[i].x-pnt[j].x+pnt[i].vx*t-pnt[j].vx*t)+(pnt[i].y-pnt[j].y+pnt[i].vy*t-pnt[j].vy*t)*(pnt[i].y-pnt[j].y+pnt[i].vy*t-pnt[j].vy*t) );
}
}
return sqrt(dis);
} int main(){
int T;
int ca = ;
scanf("%d",&T);
while( T-- ){
int n;
scanf("%d",&n);
for( int i=;i<n;i++ ){
scanf("%lf%lf%lf%lf",&pnt[ i ].x,&pnt[ i ].y,&pnt[ i ].vx,&pnt[ i ].vy);
}
double L = ;
double R = inf2;
double ans_d = inf;
double ans_t = inf;
while( L+eps<R ){
double mid1 = ( L+R )/2.0;
double mid2 = ( mid1+R )/2.0;
double d1 = solve( mid1,n );
double d2 = solve( mid2,n );
if( d1<=d2 ) {
if( d1<ans_d ){
ans_t = mid1 ;
ans_d = d1;
}
else if( d1==ans_d )
ans_t = min( ans_t,mid1 );
R = mid2;
}
else {
if( d2<ans_d ){
ans_t = mid2 ;
ans_d = d2;
}
else if( d2==ans_d )
ans_t = min( ans_t,mid2 );
L = mid1;
}
//printf("L = %lf,R = %lf\n",L,R);
}
printf("Case #%d: %.2lf %.2lf\n",ca++,ans_t,ans_d);
}
return ;
}
HDU4714+三分的更多相关文章
- hdu3714 三分找最值
Error Curves Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- BZOJ 1857 传送带 (三分套三分)
在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxhgww想从 ...
- hdu 4717(三分求极值)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 思路:三分时间求极小值. #include <iostream> #include ...
- HDU2438 数学+三分
Turn the corner Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- 三分之一的程序猿之社交类app踩过的那些坑
三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们 ...
- 基于jPlayer的三分屏制作
三分屏,这里的三分屏只是在一个播放器里同时播放三个视频,但是要求只有一个控制面板同时控制它们,要求它们共享一个时间轨道.这次只是简单的模拟了一下功能,并没有深入的研究. 首先,需要下载jPlayer, ...
- 【BZOJ-1857】传送带 三分套三分
1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 1077 Solved: 575[Submit][Status][ ...
- ACM : HDU 2899 Strange fuction 解题报告 -二分、三分
Strange fuction Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- bzoj1857: [Scoi2010]传送带--三分套三分
三分套三分模板 貌似只要是单峰函数就可以用三分求解 #include<stdio.h> #include<string.h> #include<algorithm> ...
随机推荐
- TFS2012常见问题及解答
1.删除workItem工作项(包括Bug,用户场景,任务等) 需要利用到witadmin工具,目录在cd %programfiles%\Microsoft Visual Studio 11.0\Co ...
- self指向函数地址 动态调用函数的简单例子
#import <Foundation/Foundation.h> @interface Person : NSObject - (void)test1; - (void)test2:(N ...
- ASP.NET实现在线人员实时显示
在最近的学习中,参考其他资源,做了一个简单的在线人员显示的功能,总结了一下,思路如下: 1.定义一个全局的内存来作为在线人员列表 2.通过实时判断用户Session值,来判断某个用户的登录或离线 3. ...
- javascript 笔记——bind 用法小技巧
$(function(){ //代码阅读能力 function speak(name){ return "Hello " + name; } //此处写代码 //方法一 //重点是 ...
- 使用MySQL数据库将汉字转换成拼音的一个C语言小程序
环境: mysql:mysql-5.1.65 centos:centos 6.5 编译命令: gcc -o chinesetopinyin chinesetopinyin.c -L/usr/lib/m ...
- (转)jquery ajax使用及跨域访问解决办法
原文地址:***/UIweb/jquery_ajax_kuayujiejue.html 最近开发中,设计到智能手机项目,给领导做几个demo.主要是用jquery和jqeury mobile. 越来越 ...
- github项目filter_firewall说明
本文编写的目的: 本文是对上传到github上的项目进行说明.github链接:filter_firewall有任何意见或者建议可以Email:18277973721@sina.cn 项目介绍: 包过 ...
- Node.Js之【Stream 之复制文件问题】
var fs = require('fs'), path = require('path'), out = process.stdout; var filePath = 'F:/IMG_0221.MO ...
- linux设备驱动模型(kobject与kset)
Linux设备模型的目的:为内核建立一个统一的设备模型,从而又一个对系统结构的一般性抽象描述.换句话说,Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要 ...
- Python生成验证码
#!/usr/bin/env python #coding:utf8 import random #方法1: str_code='zxcvbnmasdfghjklqwertyuiopZXCVBNMAS ...