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

POJ 3301

开始就是瞄着三分来做的,但看题目,感觉是旋转卡壳吧。。可是,用了旋转卡壳还三分条毛啊。。

可以令正方形不旋转,而改为令点绕原点旋转,这样,很好的解决了问题,就可以比较X轴最大长度和Y轴最大长度来确定正方形的边长了。然后三分旋转角度就可以了。

#include <iostream>
#include <cmath>
#include <cstdio>
#include <algorithm>
using namespace std;

struct Point{
	double x,y;
};
Point point[50];
int n;
Point tmp[50];

const double inf=1e10;

double cal(double ang){
	double x,y;
	double xmax=-inf,xmin=inf;
	double ymax=-inf,ymin=inf;
	for(int i=1;i<=n;i++){
		x=cos(ang)*point[i].x-sin(ang)*point[i].y;
		y=cos(ang)*point[i].y+sin(ang)*point[i].x;
		xmax=max(xmax,x);
		xmin=min(xmin,x);
		ymax=max(ymax,y);
		ymin=min(ymin,y);
	}
	return max((xmax-xmin),(ymax-ymin))*max(xmax-xmin,ymax-ymin);
}

int main(){
	int T;
	scanf("%d",&T);
	while(T--){
		scanf("%d",&n);
		for(int i=1;i<=n;i++){
			scanf("%lf%lf",&point[i].x,&point[i].y);
		}
		double l=0,r=180; double m,mm;
		while(l+(1e-8)<r){
			m=l+(r-l)/3;
			mm=r-(r-l)/3;
			if(cal(m)>cal(mm))
			l=m;
			else r=mm;
		}
		printf("%.2lf\n",cal(l));
	}
	return 0;
}

  

转载于:https://www.cnblogs.com/jie-dcai/p/4274509.html

相关文章:

  • 几个常用Request.ServerVariables的中文
  • CodeForces 132C 一道简单 dp
  • 详解C#正则表达式语法的相关规则
  • PHP-cli简介
  • 致创业者的一封信(转)
  • DOM(转)
  • 修改文件注册数据库连接配置,可不在Net Manager里配置
  • Apache+Mod_Python配置
  • 【BestCoder】【Round#29】
  • struts2Demo
  • 总有一款合适你--ARM下裸机开发环境大全
  • 关于javascript原型链的个人理解
  • 项目管理学习笔记二:信息系统服务管理
  • Monkey源码分析之事件源
  • C语言课程设计题目汇总
  • Javascript基础之Array数组API
  • Joomla 2.x, 3.x useful code cheatsheet
  • Python十分钟制作属于你自己的个性logo
  • Vue UI框架库开发介绍
  • 工作手记之html2canvas使用概述
  • 关于extract.autodesk.io的一些说明
  • 排序(1):冒泡排序
  • 前端_面试
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 实习面试笔记
  • 小试R空间处理新库sf
  • Prometheus VS InfluxDB
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #预处理和函数的对比以及条件编译
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (pojstep1.3.1)1017(构造法模拟)
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二十三)Flask之高频面试点
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转载)OpenStack Hacker养成指南
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Core 2.1路线图
  • .Net MVC + EF搭建学生管理系统
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  • [Android Pro] Notification的使用
  • [bzoj1324]Exca王者之剑_最小割
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [CISCN2019 华东北赛区]Web2
  • [cogs2652]秘术「天文密葬法」
  • [C语言]——内存函数
  • [Deepin 15] 编译安装 MySQL-5.6.35
  • [EFI]Acer Aspire A515-54g电脑 Hackintosh 黑苹果efi引导文件
  • [Electron]ipcMain.on和ipcMain.handle的区别