首页 > 其他分享 >[ABC223E] Placing Rectangles 题解

[ABC223E] Placing Rectangles 题解

时间:2024-04-04 10:45:00浏览次数:24  
标签:题解 Placing 长方形 double swap ans Rectangles check

[ABC223E] Placing Rectangles 题解

思路解析

根据题目可知,其实三个长方形无非只有以下两种摆放方式。

若大长方形长为 \(y\),宽为 \(x\),则我们对于第一种情况就固定住宽,判断能否使长度小于等于长;对于第二种情况同样固定住宽,此时 A 长方形右边空间的长就确定了,就只需要判断 B,C 的宽之和能否小于大长方形的宽即可。

注意大长方形的长宽可以互换,小长方形的顺序可以互换。

code

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define double long double
ll x, y, a, b, c;
bool check() {
	ll ax = ceil((double)a / x), bx = ceil((double)b / x), cx = ceil((double)c / x);
	if(ax + bx + cx <= y) return true;
	ll yy = y - ax;
	if(yy <= 0) return false;
	ll by = ceil((double)b / yy), cy = ceil((double)c / yy);
	if(by + cy <= x) return true;
	return false;
}
int main() {
	cin >> x >> y >> a >> b >> c;
	bool ans = check();
	swap(a, b); ans |= check();
	swap(a, c); ans |= check();
	
	swap(x, y); ans |= check();
	swap(a, b); ans |= check();
	swap(a, c); ans |= check();
	if(ans) puts("Yes");
	else puts("No");
	return 0;
}

标签:题解,Placing,长方形,double,swap,ans,Rectangles,check
From: https://www.cnblogs.com/2020luke/p/18113970

相关文章

  • [ABC221E] LEQ 题解
    [ABC221E]LEQ题解思路解析很有思维量的一道题。首先根据题目要求发现,新求的子序列只跟子序列的头尾有关,而在确定头尾之后中间的元素选或不选没有任何关系。也就是确定新子序列的头尾下标分别为\(i,j\),那么以当前头尾的可行子序列个数就是\(2^{j-i-1}=2^j\div2^{i+1}\)种......
  • 【阿里淘天笔试题汇总】2024-04-03-阿里淘天春招笔试题(第一套)-三语言题解(CPP/Pytho
    ......
  • 【阿里淘天笔试题汇总】2024-04-03-阿里淘天春招笔试题(第二套)-三语言题解(CPP/Pytho
    ......
  • Luogu P8710 [蓝桥杯 2020 省 AB1] 网络分析 题解 [ 绿 ] [ 带权并查集 ]
    原题分析本题由于从一个节点发信息,同一个集合内的所有点都会收到信息,显然是一道要求维护各节点间关系的题,因此采用并查集的数据结构进行求解。但由于维护关系的同时还要维护权值,所以采用带权并查集,它是一种能维护某个节点与其祖宗节点之间关系的数据结构。带权并查集找父亲的......
  • 大学教材《C语言程序设计》(浙大版)课后习题解析 | 第九、十章
    概述    本文主要提供《C语言程序设计》(浙大版)第九、十章的课后习题解析,以方便同学们完成题目后作为参考对照。后续将更新第十一、十二章节的课后习题解析,如想了解更多,请持续关注该专栏。专栏直达链接:《C语言程序设计》(浙大版)_孟俊宇-MJY的博客-CSDN博客​http://......
  • P10296 [CCC 2024 S2] Heavy-Light Composition 题解
    思路先扫一遍,计算每个字母出现的数量,然后判断是否是交替出现。代码#include<bits/stdc++.h>usingnamespacestd;intmain(){ intT,n; cin>>T>>n; while(T--){ intt[105]={0}; strings; cin>>s; for(inti=0;i<n;i++)t[s[i]-'a&#......
  • CF1909G Pumping Lemma 题解
    题目链接题目要求我们对合法三元组进行计数,直接做是困难的,因此考虑通过枚举确定一部分元素再进行判定求解,那我们固定什么呢?固定\(x\)和\(y+z\)的分界线没啥用,因此我们枚举确定\(S\)中\(x+y\)和\(z\)的分界线,这样能确定一长串\(y^{k-1}\)所在的区间。接着我们不难想......
  • AGC066 题解
    A将网格黑白染色,将黑色格变为\(\bmod2d=0\),白色格变为\(\bmod2d=d\)。这样代价上界为\(n^2d\)。但是这样的“期望代价”是\(\frac{1}{2}n^2d\)的,考虑将黑色格变为\(\bmod2d=x\),白色格变为\(\bmod2d=d+x\),根据鸽巢原理,一定有一种方案代价在\(\frac{1}{2}n^2d......
  • 【题解】AGC008F | 思维 统计技巧 换根 二次扫描
    题意:给出一个\(n\)个点的树(边权为\(1\))和集合\(S\),求有多少个点集\(T\)可以被表示为离\(S\)中的一个点\(u\)距离不超过\(d\)的点构成的集合(下文称为\(u\)的\(d\)级邻域)。考虑\(S\)为所有点的特殊情况:我们直接求每个点邻域的个数再求和,会算重一些点集,这种情况......
  • 【洛谷 P8695】[蓝桥杯 2019 国 AC] 轨道炮 题解(映射+模拟+暴力枚举+桶排序)
    [蓝桥杯2019国AC]轨道炮题目描述小明在玩一款战争游戏。地图上一共有NNN个敌方单位,可以看作2D平面上的点。其中第i......