当前位置: 首页 > news >正文

网站开发语言的选择浙江省财务开发公司官网

网站开发语言的选择,浙江省财务开发公司官网,南京网站建设方案,网站优化长沙题目链接:https://leetcode.cn/problems/maximum-number-of-darts-inside-of-a-circular-dartboard/description/ 题目大意:给出一系列点和一个圆的半径,(寻找一个圆心)求这个半径的圆最多能覆盖多少个点。 思路&…

题目链接:https://leetcode.cn/problems/maximum-number-of-darts-inside-of-a-circular-dartboard/description/

题目大意:给出一系列点和一个圆的半径,(寻找一个圆心)求这个半径的圆最多能覆盖多少个点。

思路:几何上,如果一个圆能够覆盖N个点,那么在这N个点中,一定存在两个点,使得这个圆移动一下使得这两个点在圆上后,依然能够覆盖这原来N个点(详细的证明看网站上的题解,感觉还是比较intuitive的)。因此只需要遍历点对,寻找过这两个点,半径为r的圆的圆心,再计算这个圆覆盖的点数,求最大即可。注意两个点一个半径并无法确定圆心,因为这个圆心可能有两个,对称的,在纸上画画就能看出来。

然而代码写起来是有点繁杂,好多地方忘了用浮点数,debug了挺久。并且在判点是否在圆内圆外的函数中,我本地IDE上只需要>=0就行了,但这样子在leetcode网站上总有case过不了,跑出来答案不一样。于是修改了一下boundary,才通过。

完整代码

class Solution {
public:inline int calD(vector<vector<int>>& darts, int r2, double cx, double cy) {int num = 0;for (auto d : darts) {double dis2 = (d[0] - cx) * (d[0] - cx) + (d[1] - cy) * (d[1] - cy);if (r2 - dis2 >= -1e-5)num++; }return num;}int numPoints(vector<vector<int>>& darts, int r) {int n = darts.size();int ans = 1;int r2 = r*r;for (int i = 0; i < n; i++) {for (int j = i+1; j < n; j++) {double midx = 1.0*(darts[i][0] + darts[j][0]) / 2;double midy = 1.0*(darts[i][1] + darts[j][1]) / 2;double half = sqrt((darts[i][0] - darts[j][0]) * (darts[i][0] - darts[j][0]) + (darts[i][1] - darts[j][1]) * (darts[i][1] - darts[j][1]))/2;double p = sqrt(r*r - half*half);if (darts[i][0] == darts[j][0]) {ans = max(ans, calD(darts, r2, darts[i][0] + p, midy));ans = max(ans, calD(darts, r2, darts[i][0] - p, midy));}else if (darts[i][1] == darts[j][1]) {ans = max(ans, calD(darts, r2, midx, darts[i][1] + p));ans = max(ans, calD(darts, r2, midx, darts[i][1] - p));}else {double k = 1.0*(darts[i][1] - darts[j][1]) / (darts[i][0] - darts[j][0]);k = -1.0 / k;ans = max(ans, calD(darts, r2, midx + p * 1 / sqrt(1 + k*k), midy + p * k / sqrt(1 + k*k)));ans = max(ans, calD(darts, r2, midx - p * 1 / sqrt(1 + k*k), midy - p * k / sqrt(1 + k*k)));}}}return ans;}
};
http://www.yayakq.cn/news/856516/

相关文章:

  • 东莞网站平面设计公司移动论坛网站模板
  • 盘龙城做网站江苏建设人才网电子证书查询官网
  • 下载浙江平安建设信息系统网站黄埔网站建设哪家好
  • 自己的做网站id 怎么转wordpress
  • 大什么的网站建设公司好做网站电脑需要配置很好吗
  • 上海装修网站大全百度指数下载手机版
  • 网站建设怎么分好坏关键词百度云
  • 如何建立网站平台的步骤东道设计学院
  • 网站建设的实训报告的实训感受悬停提示 wordpress
  • 建筑网官网软件常州百度搜索优化
  • 个人网站名字大全邢台学校网站建设
  • 成都网站建设 小兵cms如何推广微信视频号
  • 通信的毕设网站建设网站建设的费用包括哪些内容
  • 怀远网站建设哪家好十大房产中介软件
  • 门户网站建设需注意的问题专业的网站建设设计
  • 是在百度中建设网站wordpress回复插件
  • 专门做老年旅游的网站如何选择校园文化设计公司
  • 太原专业设计网页公司seo提权软件
  • 网站空间服务器排名义乌网站建设成都网站设计
  • 中国建设银行网站公告四川建设厅官方网站九大员通知
  • 网站规划的步骤简单的个人网站下载
  • 域名网站备案社交网站第一步怎么做
  • 台州网站建设费用视频网站自己怎么做的
  • 青岛做网站建设的公司wordpress数据库信息文件
  • 开平网站建设地质公园网站建设
  • 如何做一个虚拟网站烟台开发区人才网官网
  • 彩票网站开发需求文档廊坊专业做网站
  • 网站大数据怎么做的一个域名可以做两个网站么
  • 网站开发可以用gif吗企业网站管理系统站长之家
  • 做网站后台外贸是什么意思