AtCoder Beginner Contest 130 F Minimum Bounding Box 三分法求极值(WA)
题意:给n个点的起始坐标以及他们的行走方向,每一单位时间每个点往它的方向移动一单位。问最小能包围所有点的矩形。
解法:看到题目求极值,想了想好像可以用三分法求极值,虽然我也不能证明面积是个单峰函数。
尝试交了一发结果73组数据WA了1组数据,看起来似乎三分法是对的,但是至今还没找到哪个细节错了qwq,先记录下来。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+;
const int INF=0x3f3f3f3f;
const double eps=1e-;
int n,m,x[N],y[N];
char d[N][]; double xmax,xmin,ymax,ymin;
void chg(double x,double y) {
xmax=max(xmax,x); xmin=min(xmin,x);
ymax=max(ymax,y); ymin=min(ymin,y);
} double calc(double t) {
xmax=-INF,xmin=INF,ymax=-INF,ymin=INF;
for (int i=;i<=n;i++) {
if (d[i][]=='R') chg(x[i]+t,y[i]);
if (d[i][]=='L') chg(x[i]-t,y[i]);
if (d[i][]=='U') chg(x[i],y[i]+t);
if (d[i][]=='D') chg(x[i],y[i]-t);
}
return (double)(xmax-xmin)*(ymax-ymin);
} int main()
{
cin>>n;
for (int i=;i<=n;i++) scanf("%d%d%s",&x[i],&y[i],d[i]);
double l=,r=1e8, lm, rm;
while(r-l>eps) {
lm = l+(r-l)/;
rm = lm+(r-lm)/;
if(calc(lm) < calc(rm)) r = rm;
else if(calc(lm) == calc(rm)) r=rm, l=lm;
else l = lm;
}
printf("%.10lf\n",calc(l));
return ;
}
AtCoder Beginner Contest 130 F Minimum Bounding Box 三分法求极值(WA)的更多相关文章
- AtCoder Beginner Contest 137 F
AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...
- ABC130 Task F. Minimum Bounding Box
题目链接 题解 最小的 bounding box 一定可以在四个时间段的最左端点和最右端点之间取到. 举例言之,设四个时间段分别是 (2, 5), (7, 10), (4, 9), ( 10, 20) ...
- AtCoder Beginner Contest 261 F // 树状数组
题目链接:F - Sorting Color Balls (atcoder.jp) 题意: 有n个球,球有颜色和数字.对相邻的两球进行交换时,若颜色不同,需要花费1的代价.求将球排成数字不降的顺序,所 ...
- AtCoder Beginner Contest 260 F - Find 4-cycle
题目传送门:F - Find 4-cycle (atcoder.jp) 题意: 给定一个无向图,其包含了S.T两个独立点集(即S.T内部间的任意两点之间不存在边),再给出图中的M条边(S中的点与T中的 ...
- AtCoder Beginner Contest 253 F - Operations on a Matrix // 树状数组
题目传送门:F - Operations on a Matrix (atcoder.jp) 题意: 给一个N*M大小的零矩阵,以及Q次操作.操作1(l,r,x):对于 [l,r] 区间内的每列都加上x ...
- AtCoder Beginner Contest 249 F - Ignore Operations // 贪心 + 大根堆
传送门:F - Keep Connect (atcoder.jp) 题意: 给定长度为N的操作(ti,yi). 给定初值为0的x,对其进行操作:当t为1时,将x替换为y:当t为2时,将x加上y. 最多 ...
- AtCoder Beginner Contest 247 F - Cards // dp + 并查集
原题链接:F - Cards (atcoder.jp) 题意: 给定N张牌,每张牌正反面各有一个数,所有牌的正面.反面分别构成大小为N的排列P,Q. 求有多少种摆放方式,使得N张牌朝上的数字构成一个1 ...
- AtCoder Beginner Contest 133 F Colorful Tree
Colorful Tree 思路: 如果强制在线的化可以用树链剖分. 但这道题不强制在线,那么就可以将询问进行差分,最后dfs时再计算每个答案的修改值, 只要维护两个数组就可以了,分别表示根节点到当前 ...
- AtCoder Beginner Contest 171-175 F
171 F - Strivore 直接把初始字符当成隔板,统计的方案数会有重复 为了避免重复情况,规定隔板字母尽可能最后出现,即在隔板字母后面不能插入含隔板字母的字符串 所以在隔板字母后插入的字符只有 ...
随机推荐
- 《Spring Boot实战》笔记 (六章)
6.1 基本配置 ........................................................................................... ...
- Kotlin学习笔记(9)- 数据类
系列文章全部为本人的学习笔记,若有任何不妥之处,随时欢迎拍砖指正.如果你觉得我的文章对你有用,欢迎关注我,我们一起学习进步! Kotlin学习笔记(1)- 环境配置 Kotlin学习笔记(2)- 空安 ...
- JVM参数说明
转载于https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html文章 JVM参数说明 -Xms:初始堆大小 默认值=物理内存的1 ...
- css3的三大特性以及移动端说明
css3的三大特性: 一.层叠性 所谓层叠性是指多种CSS样式的叠加. 是浏览器处理冲突的一个能力,如果一个属性通过两个相同选择器设置到同一个元素上,那么这个时候一个属性就会将另一个属性层叠掉 比如先 ...
- 【转】跨域资源共享 CORS 详解
本文来源:http://www.ruanyifeng.com/blog/2016/04/cors.html 阮一峰老师的网络日志 CORS是一个W3C标准,全称是"跨域资源共享"( ...
- vue项目中使用echarts地图
第一步.npm install echarts 第二部.在main.js中引入 第三步.创建组件,并且用this.$echarts.init初始化echarts <template> &l ...
- python每日练习
""" 习题 1:一个列表,排重,不能用 set,也不能用字典 """ #方法一1:循环.遍历 l = [1,1,1,2,2,3,4,4,6 ...
- 【Http2.0】Http2.0
序言 目前HTTP/2.0(简称h2)已经在广泛使用(截止2018年8月根据Alexa流行度排名的头部1千万网站中,h2占比约29%,https://w3techs.com/technologies/ ...
- 安装并配置前端自动化工具-gulp
由于现在前端自动化已经很有必要了,所以我今天死皮烂脸的找了2位前端大咖帮助我安装和配置gulp,讲真,这一步步弄下来直到安装配置成功,到现在还是迷迷糊糊,不过我还是把这些步骤给记录下来,以防下次不记得 ...
- PCB下元器件重叠放置--Altium Designer
这里指的是同层元件重叠,即在大的器件下放置小的器件:虽然程序设计规则默认同层元件重叠是错误的,但是在实际设计中,同层元件重叠却经常使用. 以Altium Designer9.0为例:不过好像规则里并没 ...