AcWing 5180. 正方形泳池

news2025/1/23 4:58:20


原题链接:5180. 正方形泳池 - AcWing题库

说实话题解和视频题解都不太好,有点过于复杂了,那就不得不记录一下我看视频题解衍生出的另一个较为简单的思路了。

根据答案形态出发,枚举所有这种形态找出最大值。

可以发现最大的泳池要么是左右边界被两棵树限制住了,或者就是上下边界被两棵树限制住了。
所以我们可以穷举所有两棵树的组合,并且以这两棵树y的差值或者x的差值为正方形的边长,来放下泳池。最大的泳池,必然在这些组合里面。

放下泳池有限制条件,假设以y的差值放下去,那么可用的连续x也必须大于等于y的差值,两棵树之间可能会有其他树来碍事,那么这里的x就会被断开成好几段,需要找出最大的那个x。

这种只有一棵树的,因为泳池不能超过边界,所以相当于外面围了一圈树,只要在四个角落种上树就好了。

AC代码

#include <bits/stdc++.h>
using namespace std;

int N,T,ans=INT_MIN;
struct tree{
    int x,y;
}t[105];
vector<int>tmp;
bool cmpy(tree a,tree b){
    return a.y<b.y;
}
bool cmpx(tree a,tree b){
    return a.x<b.x;
}

int main(){
    cin>>N>>T;
    for(int i=1;i<=T;++i)
        cin>>t[i].x>>t[i].y;

    t[++T]={0,0};
    t[++T]={0,N+1};
    t[++T]={N+1,0};
    t[++T]={N+1,N+1};

    sort(t+1,t+1+T,cmpy);
    for(int i=1;i<=T;++i){
        for(int j=i+1;j<=T;++j){
            tmp.push_back(0);
            tmp.push_back(N+1);
            for(int k=i+1;k<j;++k)
                tmp.push_back(t[k].x);

            sort(tmp.begin(),tmp.end());
            int xmax=INT_MIN;
            for(int k=0;k<tmp.size()-1;++k)
                xmax=max(xmax,tmp[k+1]-tmp[k]-1);
            ans=max(ans,min(xmax,t[j].y-t[i].y-1));
            tmp.clear();
        }
    }

    sort(t+1,t+1+T,cmpx);
    for(int i=1;i<=T;++i){
        for(int j=i+1;j<=T;++j){
            tmp.push_back(0);
            tmp.push_back(N+1);
            for(int k=i+1;k<j;++k)
                tmp.push_back(t[k].y);

            sort(tmp.begin(),tmp.end());
            int ymax=INT_MIN;
            for(int k=0;k<tmp.size()-1;++k)
                ymax=max(ymax,tmp[k+1]-tmp[k]-1);
            ans=max(ans,min(ymax,t[j].x-t[i].x-1));
            tmp.clear();
        }
    }

    cout<<ans<<endl;
    return 0;
}

思路很简单,但是说也不太说的明白。

重点:枚举所有答案形态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1102073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十分钟了解IPv6升级改造安全优势

相信IPv6的地址数量优势已为大家熟知&#xff0c;丰沛的地址存量是IPv6被选作新一代网络承载协议并逐渐商用部署的根本驱动力。 然而IPv6协议相比于IPv4&#xff0c;不仅地址数量接近无限&#xff0c;还在网络安全性方面更胜一筹。本文将为您集中介绍IPv6的安全优势。 CSDN大…

微信小程序开发之flex布局及轮播图组件与后台Mock.js交互

目录 前言 一.flex布局 1.什么的flex布局 2.容器属性 2.1 flex-direction属性 2.2 flex-wrap属性 2.3 justify-content属性 特点&#xff1a; 二.轮播图 1.配置地址请求信息 2.通过方法加载轮播图数据 3.合法域名纠正 ​编辑 4.通过Mock.js模拟响应数据 5.轮播图前…

前端开发工具有哪些?17款前端工程师必备工具推荐!

软件开发是一个高度专业化的职业分工&#xff0c;根据所使用的编程语言的不同&#xff0c;会细分出多种岗位&#xff1a;前端开发、后端开发、客户端开发、iOS开发、Android开发、数据库开发等等&#xff0c;具体到每一个岗位&#xff0c;工作中常用的工具软件也存在着差别。 …

框架篇

一、Spring中的单例Bean是线程安全的吗 二、AOP相关面试题 三、Spring中的事务 四、Spring中事务失效的场景有 五、Spring bean的生命周期 六、Spring的循环依赖 七、SpringMVC的执行流程 八、自动配置原理 九、Spring框架常见的注解 十、Mybatis的执行流程 十一、MyBatis延迟加…

进阶JAVA篇- Lambda 表达式与 Lambda 表达式的省略规则

目录 1.0 什么是 Lambda 表达式&#xff1f; 1.1 既然跟匿名内部类相关&#xff0c;先来回顾匿名内部类。 1.2 Lambda 表达式与匿名内部类之间的关系。 1.3 函数式接口 1.4 在具体代码中来操作一下 2.0 Lambda 表达式省略规则 1.0 什么是 Lambda 表达式&#xff1f; Lambda 表达…

企业打造VR虚拟展厅,开启商务洽谈新时代!

现代化数字营销中&#xff0c;企业做了虚拟线上展厅和不做虚拟展厅的对比是很明显的&#xff0c;VR虚拟展厅让企业产品、企业环境、企业实力的展示更加真实、直观。虚拟展厅是一种在线展示企业形象和品牌的新型方式&#xff0c;随着VR技术的发展&#xff0c;虚拟展厅正在逐步取…

户外暴晒测试系统太阳光模拟器

概述 户外暴晒测试系统太阳光模拟器是一种设备&#xff0c;用于模拟太阳光以测试和评估材料、产品或设备在户外的耐久性和性能。它由光源、光学系统、试样台和控制系统组成。通过调整参数&#xff0c;模拟不同时间、地点和季节的太阳光条件&#xff0c;对样品进行长时间暴晒&a…

【LeetCode刷题(数据结构与算法)】:用队列实现栈

请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09; 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶 int pop() 移除并返回栈顶元素 int top() 返…

python版李相夷

1、我们绘制原图是这张lxy.jpg 2、具体代码如下 运行python main.py lxy.jpg就可以实现绘制过程了&#xff01;&#xff08;可能会比较慢&#xff09; # -*- coding: utf-8 -*-import turtle as te from bs4 import BeautifulSoup import argparse import sys import numpy a…

【Linux】Linux常用指令

ls指令&#xff08;对属性操作&#xff0c;查看文件相关属性&#xff09; 用法&#xff1a;ls[选项][目录或文件] 功能&#xff1a;1. 对于目录&#xff0c;该命令列出该目录下的所有子目录和文件。2. 对于文件&#xff0c;将列出文件名以及其他信息。 常用选项&#xff1a; …

jmeter 解决查看结果树响应内容中文乱码问题

jmeter 解决查看结果树响应内容中文乱码问题 查看结果树中&#xff0c;接口响应内容中&#xff0c;包含中文&#xff0c;显示乱码&#xff1b; 临时解决方法&#xff0c;添加BeanShell 后置处理程序&#xff0c;添加内容prev.setDataEncoding("utf-8"); 运行压测…

矫正图片背景

在利用明场或荧光显微镜成像时&#xff0c;往往会由于样品厚度不一、镜头污渍或者光照不均等因素&#xff0c;降低图片质量&#xff0c;从而影响分析以及展示。 这篇文章就为大家介绍&#xff1a;怎样利用 ImageJ 对图片进行背景校正&#xff0c;包括两个方面&#xff1a;白平…

前端跨域问题解决

一、同源策略 同源策略是一个重要的安全策略&#xff0c;它用于限制一个Origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档&#xff0c;减少可能被攻击的媒介。 Origin&#xff1a;指web文档的来源&#xff0c;Web 内容的来源取决于访问的U…

数据结构: 二叉搜索树

目录 1.二叉搜索树概念 2.二叉搜索树的操作 3.二叉搜索树的实现 3.1定义BST 3.2功能实现 1.默认成员函数 2.非递归 插入 查找 删除 3.递归 插入 查找 删除 4.二叉搜索树的应用 1.二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它可以是一棵空树&#xff…

Java连接PostGreSql

本次试验怎么用jdbc连接PostGreSql数据库。首先需要安装一个pgsql数据库&#xff0c;安装就不介绍了。安装后自己用SQL创建表&#xff0c;如有下图的库和表&#xff0c;怎么用java带SQL参数连接他取的数据。 PG库下载地址 首先到官网上根据自己的Java版本下载jdbc驱动jdbc下载…

HCIP静态路由综合实验

题目&#xff1a; 步骤&#xff1a; 第一步&#xff1a;搭建上图所示拓扑; 第二步&#xff1a;为路由器接口配置IP地址&#xff1b; R1&#xff1a; [R1]display current-configuration intinterface GigabitEthernet0/0/0ip address 192.168.1.1 255.255.255.252 interfa…

FL Studio 2023中文安装设置指南!四招教你玩转FL Studio21!

Fl Studio是一款极具时尚元素的音乐制作软件&#xff0c;对于粉丝群体来说简直是一大福利&#xff01;不仅可以充分发挥你的创造力&#xff0c;还能展现你的音乐才华。这里给你分享几个设置中文的技巧&#xff0c;让你的Fl Studio体验更上一层楼&#xff01; 编曲软件FL Studi…

警惕这款记录音频和电话的Android木马软件SpyNote

导语&#xff1a;近日&#xff0c;一款名为SpyNote的Android木马软件被揭示出其多样化的信息收集功能。该木马软件通常通过短信钓鱼攻击传播&#xff0c;攻击链通过欺骗潜在受害者点击嵌入链接来安装该应用程序。除了要求入侵性权限以访问通话记录、摄像头、短信和外部存储等&a…

vite react react-pdf pdfjs-dist 加载不全的解决方案 cmaps本地路径

pdf.js 字体无法显示 pdfjs-dist加载不全的解决方案 Rollup 配置 rollup-plugin-copy插件&#xff0c;进行打包构建时的文件复制 参考了网上诸多解决方案&#xff0c;都是webpack的引入包方式&#xff0c; 照猫画虎&#xff0c;把vite解决方案奉献给大家 vite.config.js impo…

小程序:uniapp解决主包体积过大的问题

已经分包但还是体积过大 运行时勾选“运行时是否压缩代码”进行压缩 在manifest.json配置&#xff08;开启分包优化&#xff09; "mp-weixin" : {"optimization" : {"subPackages" : true}//.... },在app.json配置&#xff08;设置组件按需注入…