poj3301
来源:互联网 发布:c语言好的书籍 编辑:程序博客网 时间:2024/04/29 22:18
参考三分讲解。
http://hi.baidu.com/czyuan_acm/item/81b21d1910ea729c99ce33db
#include <iostream>
#include <algorithm>
#include <math.h>
#include <iomanip>
using namespace std;
#define pi acos(-1.0)
#define eps 1e-8
#define INF 1<<30
struct point{ int x, y; }p[35];
int n, t;
double calc(double angle)
{
double xmax, xmin, ymax, ymin, y, x;
xmax = ymax = -INF;
xmin = ymin = INF;
for (int i = 0; i < n; i++)//rotate
{
x = cos(angle)*p[i].x - sin(angle)*p[i].y;
y = sin(angle)*p[i].x + cos(angle)*p[i].y;
xmax = max(xmax, x);
xmin = min(xmin, x);
ymax = max(ymax, y);
ymin = min(ymin, y);
}
return max(xmax - xmin, ymax - ymin);
}
void solve()
{
double low = 0, high = pi/4, mid, midmid;
while (fabs(high - low) > eps)// the process
{
mid = (high + low) / 2;
midmid = (mid + high) / 2;
if (calc(mid) <= calc(midmid))
high = midmid;
else low = mid;
}
double ans = calc(mid);
cout << fixed << setprecision(2) << ans * ans << endl;
}
int main()
{
cin >> t;
while (t--)
{
memset(p, 0, sizeof(p));
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> p[i].x >> p[i].y;
}
solve();
}
return 0;
}
#include <algorithm>
#include <math.h>
#include <iomanip>
using namespace std;
#define pi acos(-1.0)
#define eps 1e-8
#define INF 1<<30
struct point{ int x, y; }p[35];
int n, t;
double calc(double angle)
{
double xmax, xmin, ymax, ymin, y, x;
xmax = ymax = -INF;
xmin = ymin = INF;
for (int i = 0; i < n; i++)//rotate
{
x = cos(angle)*p[i].x - sin(angle)*p[i].y;
y = sin(angle)*p[i].x + cos(angle)*p[i].y;
xmax = max(xmax, x);
xmin = min(xmin, x);
ymax = max(ymax, y);
ymin = min(ymin, y);
}
return max(xmax - xmin, ymax - ymin);
}
void solve()
{
double low = 0, high = pi/4, mid, midmid;
while (fabs(high - low) > eps)// the process
{
mid = (high + low) / 2;
midmid = (mid + high) / 2;
if (calc(mid) <= calc(midmid))
high = midmid;
else low = mid;
}
double ans = calc(mid);
cout << fixed << setprecision(2) << ans * ans << endl;
}
int main()
{
cin >> t;
while (t--)
{
memset(p, 0, sizeof(p));
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> p[i].x >> p[i].y;
}
solve();
}
return 0;
}
- poj3301
- poj3301
- poj3301
- POJ3301
- POJ3301
- POJ3301
- poj3301三分法
- poj3301 三分
- 【模拟退火】poj3301
- Poj3301 三分法解题报告
- poj3301(三分)
- [POJ3301]Texas Trip
- poj3301(三分查找)
- poj3301——Texas Trip
- poj3301(三分-坐标旋转)
- poj3301 Texas Trip (三分)
- poj3301--Texas Trip(最小正方形覆盖)
- [POJ3301]Texas Trip(三分法+计算几何)
- 以系统观点理解总线、接口(端口)、适配器和控制器
- c 程序
- 论虚构造函数与虚复制构造函数的实现!
- Oracle ADF的History Column(ADF框架提供5个默认的History属性:Create On,Create By,Modify On,Modify By,Vers)
- 在Managed Bean中给ADF RichTable排序
- poj3301
- ZOJ Problem Set - 1078
- ADF应用程序中创建和恢复保存点
- 日期和数字格式化
- socket学习
- POJ 2242 The Circumference of the Circle (计算几何)
- 关于Microsoft Visual Studio 2010 的常见错误的分析一
- hdu 4763 Theme Section (扩展kmp)
- SQL复制数据表及表结构