Texas Trip

Problem's Link:   http://poj.org/problem?id=3301


Mean:

给定n(n <= 30)个点,求出包含这些点的面积最小的正方形的面积。

analyse:

首先要确定的是旋转的角度在0到180度之间即可,超过180度是和前面的相同的。

坐标轴旋转后,坐标变换为:

  1. X = x * cosa - y * sina;
  2. y = y * cosa + x * sina;

Time complexity: O(n)

Source code: 

  1. // Memory Time
  2. // 1347K 0MS
  3. // by : crazyacking
  4. // 2015-03-31-22.18
  5. #include<map>
  6. #include<queue>
  7. #include<stack>
  8. #include<cmath>
  9. #include<cstdio>
  10. #include<vector>
  11. #include<string>
  12. #include<cstdlib>
  13. #include<cstring>
  14. #include<climits>
  15. #include<iostream>
  16. #include<algorithm>
  17. #define MAXN 1000010
  18. #define LL long long
  19. using namespace std;
  20. #define eps 1e-12
  21. #define INF (1<<25)
  22.  
  23. double ppx[],ppy[];
  24. int n;
  25.  
  26. double Cal(double a)
  27. {
  28. double xMin=INF*1.0,yMin=INF*1.0,xMax=-INF*1.0,yMax=-INF*1.0;
  29.  
  30. for(int i=;i<=n;i++)
  31. {
  32. double x1=ppx[i]*cos(a)-ppy[i]*sin(a);
  33. double y1=ppx[i]*sin(a)+ppy[i]*cos(a);
  34.  
  35. if(x1>xMax)
  36. xMax=x1;
  37. if(x1<xMin)
  38. xMin=x1;
  39.  
  40. if(y1>yMax)
  41. yMax=y1;
  42. if(y1<yMin)
  43. yMin=y1;
  44. }
  45. if(xMax-xMin<yMax-yMin)
  46. return yMax-yMin;
  47. else
  48. return xMax-xMin;
  49.  
  50. }
  51.  
  52. int main()
  53. {
  54. int t;
  55. int x,y;
  56.  
  57. scanf("%d",&t);
  58. while(t--)
  59. {
  60. scanf("%d",&n);
  61. for(int i=;i<=n;i++)
  62. {
  63. scanf("%d%d",&x,&y);
  64. ppx[i]=x+500.0;
  65. ppy[i]=y+500.0;
  66. }
  67. double le=,ri=PI,mid,mmid;
  68. double mid_va,mmid_va;
  69.  
  70. while(le+eps<=ri)
  71. {
  72. mid=(le+ri)/;
  73. mmid=(mid+ri)/;
  74. mid_va=Cal(mid);
  75. mmid_va=Cal(mmid);
  76. if(mid_va<mmid_va)
  77. ri=mmid;
  78. else
  79. le=mid;
  80. }
  81. printf("%.2lf\n",Cal(le)*Cal(le));
  82. }
  83. return ;
  84. }

三分 --- POJ 3301 Texas Trip的更多相关文章

  1. POJ 3301 Texas Trip (三分)

    题目链接 题意 : 给你若干个点,让你找最小的正方形覆盖这所有的点.输出面积. 思路 : 三分枚举正方形两对边的距离,然后求出最大,本题用的是旋转正方形,也可以用旋转点,即点的相对位置不变. 正方形从 ...

  2. poj 3301 Texas Trip(几何+三分)

    Description After a day trip with his friend Dick, Harry noticed a strange pattern of tiny holes in ...

  3. poj 3301 Texas Trip 三分法

    思路:三分法求解凸函数的极值,三分法介绍在这:http://hi.baidu.com/czyuan_acm/item/81b21d1910ea729c99ce33db 很容易就可以推出旋转后的坐标: ...

  4. POJ 3301 Texas Trip

    题目大意: 在二维坐标系中给出一些点.求能覆盖他们的最小正方形的面积(正方形的边不一定平行坐标轴) 解题思路: 对于一个点.若坐标轴旋转a度(弧度制).那么X'=X*cos(a)-Y*sin(a);Y ...

  5. POJ 3301:Texas Trip(计算几何+三分)

    http://poj.org/problem?id=3301 题意:在二维平面上有n个点,每个点有一个坐标,问需要的正方形最小面积是多少可以覆盖所有的点. 思路:从第二个样例可以看出,将正方形旋转45 ...

  6. poj3301 Texas Trip【三分算法】

    题目地址:http://poj.org/problem?id=3301 简述:T组测试数据,每组线输入n,代表有n个点,接下来输入这n个点的坐标,坐标都是整数. 要求用一个最小的正方形覆盖所有的点,输 ...

  7. POJ 3301 三分(最小覆盖正方形)

    题意:      给你n个点,让你找一个最小的正方形去覆盖所有点.思路:       想一下,如果题目中规定正方形必须和x轴平行,那么我们是不是直接找到最大的x差和最大的y差取最大就行了,但是这个题目 ...

  8. POJ3301 Texas Trip 计算几何、随机化贪心

    传送门--Vjudge 三分写法似乎有问题,可以去Udebug上看Morass的\(666\)个测试点的数据,我的乱搞有很多比正解答案小,但还是能在SPOJ和POJ过,可见数据之水. 可以对正方形的角 ...

  9. 三分 POJ 2420 A Star not a Tree?

    题目传送门 /* 题意:求费马点 三分:对x轴和y轴求极值,使到每个点的距离和最小 */ #include <cstdio> #include <algorithm> #inc ...

随机推荐

  1. DIV实现CSS 的placeholder效果

    placeholder是HTML5中input的属性,但该属性并不支持除input以外的元素   但我们可以使用Css before选择器来实现完全相同的效果 <!DOCTYPE html> ...

  2. [JS Compose] 0. Understand 'Box' or 'Container', they are just like Array!

    We'll examine how to unnest function calls, capture assignment, and create a linear data flow with a ...

  3. [GraphQL] Use GraphQL's List Type for Collections

    In order to handle collections of items in a GraphQL Schema, GraphQL has a List Type. In this video, ...

  4. PL-SQL 存储函数和存储过程

     PL-SQL 存储函数和存储过程 ORACLE 提供能够把PL/SQL 程序存储在数据库中,并能够在不论什么地方来执行它.这样就叫存储过程或函数. 过程和函数统称为PL/SQL子程序.他们是被命 ...

  5. distri.lua的web运维工具

    我的新手游项目很快就要进入到寻找发行商的环节,最近几天相对较空闲,逐将工作重心转移到服务器组运维工具的制作上. 回想一年之前经历的那个不算成功的端游项目,因为运维工具设计得不合理,使用十分不方便,游戏 ...

  6. android开发(50) Android透明状态栏。适用于 4.4 以上及 5.0以上设备

    概述 有时候我们想在 andorid 手机上实现一种 跨越 顶部状态栏的效果,比如一张图片直接显示在 状态栏内.比如下图: 这个页面里有张图片,这个图片显示在整个页面的上部分.状态栏是 漂浮在这个图片 ...

  7. XCode使用自带SVN,SVN命令

    转载http://blog.sina.com.cn/s/blog_68661bd80101phpy.html 这两天响应老板要求,把所有代码放到公司的SVN服务器上,按照我的想法肯定是就苹果组建一个服 ...

  8. Ext JS 6 入门学习资料大全(2016-12-14)

    现在 sencha touch已经升级为 Ext JS 6 了重新整理下资料 官方网站:https://www.sencha.com/ 在线文档:http://docs.sencha.com/extj ...

  9. 移动端使用HTML5表单增强体验

    我们知道,HTML5新增了许多表单类型,如: number,email,url,tel,datetime,month,datetime-local等等,像datetime,month这些非常方便,免得 ...

  10. MFC的消息管理

    一般而言,与视图状态和用户输入有关的命令由视图类来处理,与文件操作有关的命令由文档类来处理,与窗口布局有关的命令由主框架类来处理,与程序的运行状态有关的命令由APP类来处理.