题意:
     给你一些点,这些点有各自的初始位置,移动速度和方向,问你什么时候任意两点中最长的距离最小,求时刻和此时的距离..

思路:

     感觉题目很赞,一开始想不到三分,因为么有办法证明他是凹性或者凸性函数,后来师傅给我说了几个特例,自己在想想瞬间明白了,其实仔细想下会发现,假设我们当前的函数是随着x,y逐渐减小的,那么此时的某一时刻占据主要角色的那两个点一定是相聚的,而且当主角的两个点换掉的时候也一定是在距离相等的地方更换的,如果当前的是随x增大的那么占据主角的连个点就一定是分散的,因为如果是相聚那么在之前相聚的时候这对就一定会是主角,而如果之前是主角那么现在就有可能是相交后由相聚变成分散了,画几个特例就ok了..


#include<stdio.h>
#include<math.h>#define INF 1000000
#define N 300 + 50
#define eps 1e-6

typedef struct
{double x ,y;double vx ,vy;
}NODE;NODE node[N];inline double dis(NODE A ,NODE B)
{return ((A.x - B.x) * (A.x - B.x) + (A.y - B.y) * (A.y - B.y));
}inline double maxx(double x ,double y)
{return x > y ? x : y;
}double now_dis(int n ,double mid)
{double now_max = 0;for(int i = 1 ;i <= n ;i ++)for(int j = i + 1 ;j <= n ;j ++){NODE A ,B;A.x = node[i].x + mid * node[i].vx;A.y = node[i].y + mid * node[i].vy;B.x = node[j].x + mid * node[j].vx;B.y = node[j].y + mid * node[j].vy;now_max = maxx(now_max ,dis(A ,B));}return now_max;
}double abss(double x)
{return x > 0 ? x : -x;
}int main ()
{int t ,n ,i ,cas = 1;scanf("%d" ,&t);while(t--){scanf("%d" ,&n);for(i = 1 ;i <= n ;i ++)scanf("%lf %lf %lf %lf" ,&node[i].x ,&node[i].y ,&node[i].vx ,&node[i].vy);double low ,up ,mid ,mmid;low = 0 ,up = INF;double dis1 ,dis2;while(1){mid = (low + up) / 2;mmid = (mid + up) / 2; dis1 = now_dis(n ,mid);dis2 = now_dis(n ,mmid);if(dis1 > dis2) low = mid;else up = mmid;if(abss(low - up) < eps) break;}printf("Case #%d: %.2lf %.2lf\n" ,cas ++ ,low ,sqrt(dis1));}return 0;
}

hdu4717 三分(散点的移动)相关推荐

  1. Python进阶8——字典与散列表,字符串编解码

    Python用散列表来实现字典,散列表就是稀疏数组(数组中有空白元素),散列表中的元素叫做表元,字典的每个键值对都占用一个表元,一个表元分成两个部分,一个是对键的应用,另一个是对值的引用,因为表元的大 ...

  2. 如何开搓饵不掉钩_搓饵干散不咬钩,拉饵雾化就上鱼。99%钓鱼人心中的疑惑

    大部分人对饵料并不了解,拿状态来说也许只知道一个雾化 事实上饵料以状态划分除了雾化还有软黏.散落,散落饵还可以细分到干散.湿散.软散 之所以能够呈现那么多种状态,原因有两个:1.饵料本身的状态 2.开 ...

  3. Hashing散列注意事项

    Hashing散列注意事项 Numba支持内置功能hash(),只需__hash__()在提供的参数上调用成员函数即可 .这使得添加对新类型的哈希支持变得微不足道,这是因为扩展APIoverload_ ...

  4. 数据结构 -- 散列表

    散列表作为一种能够提供高效插入,查找,删除 以及遍历的数据结构,被应用在很多不同的存储组件之中. 就像rocksdb中的hashskiplist,redis的有序集合,java的 LinkedHash ...

  5. 搜索引擎中的URL散列

    散列(hash)也就是哈希,是信息存储和查询所用的一项基本技术.在搜索引擎中网络爬虫在抓取网页时为了对网页进行有效地排重必须对URL进行散列,这样才能快速地排除已经抓取过的网页.最理想的状态是对联网上 ...

  6. 文本的DES加密 MD5散列值 DSA的数字签名

    作者:未知 文本的DES加密 为了对称加密的安全,将密码进行封装,先新建一个用于保存密码的类库cl: using System; using System.Text ; namespace cl { ...

  7. 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储

    存储结构分四类:顺序存储.链接存储.索引存储 和 散列存储. 顺序结构和链接结构适用在内存结构中. 顺序表每个单元都是按物理顺序排列的,如果你想访问那个单元你可以根据提供的指针等直接访问到需要的东西, ...

  8. 1048 Find Coins(散列解法)

    1. 开始测试点3答案错误,看参考书发现是,读题时根据硬币最大面值500设置的数组大小,但是后来会用总面值减去硬币面值,这个大小在[1,999),因此散列表的大小应该设为1010. 2. 学会了一个小 ...

  9. 如何高效快速搞散一个团队?

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源 | https://www.zhihu.com/question/442522186/answer/1820502736 有没 ...

最新文章

  1. 力扣(LeetCode)刷题,简单+中等题(第31期)
  2. 缩小规模,OpenAI文本生成图像新模型GLIDE用35亿参数媲美DALL-E
  3. ConditionedActivityGroup
  4. Samrty技术的 初步了解
  5. 博士申请 | 美国罗格斯大学王灏助理教授招收机器学习方向博士生
  6. v$asm_diskgroup中state的说明
  7. 前端学习(1809):前端调试之微博头部开发
  8. 找回VisualStudio异常设置中丢失的“用户未处理的(User-unhandled)”列
  9. 视频剪辑用i7,8600还是r5,3600好些?
  10. bug篇——MySQL的时区问题
  11. Python语言程序设计基础_序列型数据和控制结构综合练习(第七周)_答案_通识教育必修课程_上海师范大学
  12. 蓝桥杯试题——随意组合
  13. 华为手机word插件加载失败_word加载项启动失败
  14. 一键爬取王者荣耀全皮肤高清图片【方法二】
  15. 从零开始建立机械臂URDF模型
  16. 游戏:扫雷【C语言】
  17. Blazor University (21)使用 RenderFragments 模板化组件 —— 传递占位符
  18. wbe自动化测试----xpath定位与CSS定位
  19. 【Electron】解决 npm安装出现 self-signed certificate in certificate
  20. IoT黑板报:腾讯推出世界最强人脸识别 准确率99.8%

热门文章

  1. linux工作常用软件
  2. 【剑指offer】设置在最小数目的阵列
  3. SHELL中的while与unil流程控制
  4. Remove Duplicates from Sorted List
  5. android 下的网络图片加载
  6. Tempter of the Bone(DFS + 奇偶剪枝,好题)
  7. albian开发笔记五--谈缓存同步
  8. Larbin简介,及其在Ubuntu10.04下的编译安装
  9. 在SQL中使用convert函数进行日期的查询
  10. java连接腾讯云上的redis