貌似又写出了常数挺优(至少不劣)的代码>v< 930+人AC #49

  写了个O(nlogn)貌似比一些人O(n)还快2333333

  这题还是先二分答案,check比较麻烦

  显然正方形一定以最左上或最右上或最左下或最右下的点为端点来盖,盖了一个之后再拿一个枚举剩下的点作为四个端点来盖,最后一个直接判断剩下的点能不能一次性盖就好了

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn=,inf=1e9;
typedef int poi[maxn];
poi x,y;
int n,m,l,r,mid,mxx,mxy,mnx,mny;
void read(int &k)
{
int f=;k=;char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(c<=''&&c>='')k=k*+c-'',c=getchar();
k*=f;
}
void getmax(poi x,poi y,int tot,int &mxx,int &mxy,int &mnx,int &mny)
{
mxx=mxy=-inf;mnx=mny=inf;
for(int i=;i<=tot;i++)
{
mxx=max(mxx,x[i]);mnx=min(mnx,x[i]);
mxy=max(mxy,y[i]);mny=min(mny,y[i]);
}
}
bool check(poi x,poi y,int tot,int dep)
{
int mxx,mxy,mnx,mny,tot2;
if(dep>)
{
getmax(x,y,tot,mxx,mxy,mnx,mny);
return max(mxx-mnx,mxy-mny)<=mid;
}
getmax(x,y,tot,mxx,mxy,mnx,mny);
tot2=;poi x2,y2;
for(int i=;i<=tot;i++)
if(x[i]>mnx+mid||y[i]<mxy-mid)x2[++tot2]=x[i],y2[tot2]=y[i];
if(check(x2,y2,tot2,dep+))return ;
tot2=;
for(int i=;i<=tot;i++)
if(x[i]<mxx-mid||y[i]<mxy-mid)x2[++tot2]=x[i],y2[tot2]=y[i];
if(check(x2,y2,tot2,dep+))return ;
tot2=;
for(int i=;i<=tot;i++)
if(x[i]>mnx+mid||y[i]>mny+mid)x2[++tot2]=x[i],y2[tot2]=y[i];
if(check(x2,y2,tot2,dep+))return ;
tot2=;
for(int i=;i<=tot;i++)
if(x[i]<mxx-mid||y[i]>mny+mid)x2[++tot2]=x[i],y2[tot2]=y[i];
if(check(x2,y2,tot2,dep+))return ;
return ;
}
int main()
{
read(n);
for(int i=;i<=n;i++)read(x[i]),read(y[i]);
getmax(x,y,n,mxx,mxy,mnx,mny);
l=;r=max(mxx-mnx,mxy-mny);
while(l<r)
{
mid=(l+r)>>;
if(check(x,y,n,))r=mid;
else l=mid+;
}
printf("%d\n",l);
return ;
}

bzoj1052: [HAOI2007]覆盖问题(二分+构造)的更多相关文章

  1. [BZOJ1052][HAOI2007]覆盖问题 二分+贪心

    1052: [HAOI2007]覆盖问题 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2053  Solved: 959 [Submit][Sta ...

  2. [bzoj1052] [HAOI2007]覆盖问题

    Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L * L的正方形塑料薄膜 ...

  3. bzoj1052 [HAOI2007]覆盖问题 - 贪心

    Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L*L的正方形塑料薄膜将小 ...

  4. 【BZOJ1052】 [HAOI2007]覆盖问题

    BZOJ1052 [HAOI2007]覆盖问题 前言 小清新思维题. 最近肯定需要一些思维题挽救我这种碰到题目只会模板的菜鸡. 这题腾空出世? Solution 考虑一下我们二分答案怎么做? 首先转换 ...

  5. bzoj1052覆盖问题(二分+贪心)

    1052: [HAOI2007]覆盖问题 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2446  Solved: 1131[Submit][Stat ...

  6. BZOJ 1052: [HAOI2007]覆盖问题

    BZOJ 1052: [HAOI2007]覆盖问题 题意:给定平面上横纵坐标在-1e9~1e9内的20000个整数点的坐标,用三个大小相同边平行于坐标轴的正方形覆盖(在边界上的也算),问正方形的边长最 ...

  7. 【bzoj1052】覆盖问题

    [bzoj1052]覆盖问题 分析 考虑二分\(L\)的值,然后判断3个\(L*L\)能否覆盖所有的点. 这时候出现了两种可能的思路. 思路1 首先,3是一个很小的常数. 我们想:假如能探究出1和2的 ...

  8. 【BZOJ1052】覆盖问题(贪心)

    [BZOJ1052]覆盖问题(贪心) 题面 BZOJ 洛谷 题解 这题好神仙啊. 很明显可以看出来要二分一个边长. 那么如何\(check\)呢? 我们把所有点用一个最小矩形覆盖, 那么必定每个边界上 ...

  9. 洛谷 P2218 [HAOI2007]覆盖问题 解题报告

    P2218 [HAOI2007]覆盖问题 题目描述 某人在山上种了\(N\)棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他 ...

随机推荐

  1. Prism MEF example

    Related Attributes These attributes are under namespace System.ComponentModel.Composition Import The ...

  2. hdu2037今年暑假不AC(贪心,活动安排问题)

    今年暑假不AC Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submi ...

  3. ISE 14.7安装教程最新版(Win10安装)——解决Win10安装完后打不开快捷方式的方法

    ISE 14.7安装教程最新版(Win10安装) Xilinx ISE是一款世界著名的硬件设计软件,它为设计流程的每一步都提供了直观的生产力增强工具,覆盖从系统级设计探索.软件开发和基于HDL硬件设计 ...

  4. UnityShader - 模拟动态光照特效

    模型贴片 + 特效Shader = 动态光照特效 效果是这样的: 做法简单粗暴,直接使用模型贴片: shader上使用了noise只是提供一种思路,也有更简单的方法代替

  5. 微信小程序入门学习之事件 事件对象 冒泡非冒泡事件(1)

    这关于事件的学习,可以自己复制到微信开发者工具上自己运行试试. 首先这里有两个文件.js 和.wxml 文件 首先给出.js文件下代码 // pages/news/news.js Page({ /** ...

  6. 简单说明hadoop集群运行三种模式和配置文件

    Hadoop的运行模式分为3种:本地运行模式,伪分布运行模式,集群运行模式,相应概念如下: 1.独立模式即本地运行模式(standalone或local mode)无需运行任何守护进程(daemon) ...

  7. [转]Excel数据转化为sql脚本

    在实际项目开发中,有时会遇到客户让我们把大量Excel数据导入数据库的情况.这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库. 1 在数据前插入一列单元格,用来拼写sql语句. 具体 ...

  8. parity 注记词

    spousal tint untold around rosy daintily unrated sheep choice showpiece chirping gala

  9. 压力测试工具-webbench

    简述 偶然情况下看到一款性能测试工具webbench,看着挺不错的记录一下安装过程,在以后项目上线过程中可以压一压一些页面的并发情况,对项目性能有个大致的了解. 原理 webbench首先fork出多 ...

  10. 一个简单的Spring的AOP例子

    目标对象的接口:IStudent.java  1  /**  2  *  3   */  4  package  com.dragon.study; 5   6  /**  7  *  @author ...