题解:P10358 [PA2024] Obrazy

news/2024/11/15 15:58:07/文章来源:https://www.cnblogs.com/wayneoi/p/18378714

题解:P10358 [PA2024] Obrazy

题目传送门

即当最小的画框都不可能覆盖整个矩形墙面时,输出 −1。

[PA2024] Obrazy

题目背景

PA 2024 3C

题目描述

题目译自 PA 2024 Runda 3 Obrazy,感谢 Macaronlin 提供翻译

给定尺寸为 $h\times w$ 的矩形墙面,以及 $n$ 种尺寸的正方形画框,每种尺寸画框都有无穷多个。对于任意两种不同尺寸的画框,其中一个尺寸的边长总能整除另一个尺寸的边长。

现用这些画框完全覆盖墙面,而且画框之间不能重叠,只能边缘相接,请求出最少需要购买多少个画框?如果不可能完全覆盖墙面,则程序应输出 $-1$。

输入格式

第一行两个整数 $h$ 和 $w\ (1\le h,w\le 10^9)$,表示墙面大小。

第二行一个整数 $n\ (1\le n\le 30)$,表示画框个数。

第三行 $n$ 个整数 $d_1,d_2,\ldots,d_n\ (1\le d_i\le 10^9,d_i<d_{i+1})$,表示每个正方形画框的大小,保证 $d_{i+1}$ 能被 $d_i$ 整除。

输出格式

输出一行一个整数,如果可以完全覆盖墙面,输出最少要购买多少画框,否则输出 $-1$。

样例 #1

样例输入 #1

6 10
3
1 3 6

样例输出 #1

9

样例 #2

样例输入 #2

3 3
1
2

样例输出 #2

-1

提示

在第一个样例中,Byteasar 可以用九个画框(六个 $1\times 1$、两个 $3\times 3$ 和一个 $6\times 6$)覆盖一面墙,具体如下:

在第二个样例中,无法完全覆盖墙面。

--------------------分割线--------------------

意思

用最少的方块贴最大的墙,无遗漏重叠。

过程

我们先看图

特判

因为其中一个尺寸的边长总能整除另一个尺寸的边长。

也就是说,只要连最小的方块都不能整除(正好铺满)边长,就输出 -1 。

否则用大的尽量替换小的

怎么说呢,建议降橙。

代码不重要,主要是思路

#include <bits/stdc++.h>
using namespace std;
const int N = 35;
long long h, w, n, d[N], ans;
int main(){cin >> h >> w >> n;for(int i = 1; i <= n; i++) cin >> d[i];if((h % d[1]) || (w % d[1])){cout << -1;return 0;}ans = h / d[1] * w / d[1];for(int i = 2; i <= n; i++) ans -= (((d[i] / d[i - 1]) * (d[i] / d[i - 1]) - 1) * (h / d[i]) * (w / d[i]));cout << ans;return 0;
}

注意: int 存不下!!!

点个 (欲言又止)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CMake构建学习笔记4-libjpeg库的构建

介绍了通过CMake构建libjpeg库的关键步骤。libjpeg是一个广泛使用的开源库,用于处理JPEG(Joint Photographic Experts Group)图像格式的编码、解码、压缩和解压缩功能,是许多图像处理软件和库的基础。 libjpeg本身的构建没什么特别的,不过值得说道的是libjpeg存在一个高性…

第一个selenium测试

一、环境搭建 使用语言:python 1、python解释器:python.exe 版本 3.11.4 下载地址:[https://www.python.org/downloads/release/python-3114/]设置环境变量:复制python.exe安装路径--高级系统设置--环境变量--PATH中添加--粘贴python.exe安装路径--确定 目的是确保接下来系…

博客园OpenApi管理平台

简介 博客园(Cnblogs)提供了OpenAPI服务,允许开发者通过API来获取博客园中的数据。使用这个API,可以实现从博客园抓取文章、评论等信息的功能,这对于想要集成博客园内容到自己网站或应用的开发者来说是非常有用的。 网址 https://api.cnblogs.com/结束

【论文阅读】TBA Faster Large Language Model Training Using SSD Based Activation Offloading

摘要 GPU内存容量的增长速度跟不上大型语言模型(llm)的增长速度,阻碍了模型的训练过程。特别是,激活——在前向传播过程中产生的中间张量,并在后向传播中重用——主导着GPU内存的使用。为了应对这一挑战,我们建议TBA将激活有效地卸载到高容量NVMe ssd上。这种方法通过自适应…

隧道代理ip使用

简介 隧道代理(Tunnel Proxy)是一种特殊的代理服务,它的工作方式是在客户端与远程服务器之间建立一条“隧道”。这种技术常被用来绕过网络限制或提高网络安全性。 主要功能IP地址变换:隧道代理能够改变客户端的IP地址,使得客户端访问的目标服务器看到的是代理服务器的IP地…

使用C#爬取快手作者主页,并下载视频/图集

最近发现一些快手的作者,作品还不错,出于学习研究的目的,决定看一下怎么爬取数据。现在网上有一些爬虫工具,不过大部分都失效了,或者不开源。于是自己就写了一个小工具。先看一下成果:软件只需要填写作者uid以及网页版的请求Cookie,即可实现自动下载,下载目录在程序根目…

Python安装教程

第一步:先去官网上下载python安装包 系统64位下载地址:系统32位下载地址:第二步:点击安装包 要点击Add python.exe to PATH 这个是配置系统变量的然后点install Now就开始跑安装进度了打开终端输入代码 python 再输入print(123),如果输入123那么安装完成,可以整活了

用空间清理调理风水4什么是杂乱5杂物如何影响你6为什么保留杂物

4 什么是杂乱? 《牛津英语词典》将杂乱定义为 “乱七八糟的东西的集合”。是的,这是其中的一部分,但它只是从纯粹的物理层面来描述杂乱。 在我的定义中,凌乱分为四类:你不使用或不喜欢的东西杂乱无章的东西太多东西放在太小的空间里任何未完成的东西让我们逐一来看看这些东…

go免杀学习记录

本文主要介绍了go语言的加载器基本框架与绕过360与火绒的通用方法。题记最近剑来动漫上线,虽然观感不如我的预期,感觉节奏过快。但是也是一种进步了,愿各位道友都能找到自己的宁姚。"我喜欢的姑娘啊,她眉如远山,浩然天下所有好看的山,好看的水,加起来都不如她。她睫…

看图学 - Swift actor

本文首发于 Ficow Shens Blog,原文地址: 看图学 - Swift actor。想第一时间获取对于自己有帮助的新内容? 欢迎关注 Ficow 的公众号: 看图学 Swift actor如需获取PDF版本思维导图、示例代码,请查阅公众号内容: 《看图学 - Swift actor》Stay hungry,stay foolish.

VulNyx - Ceres 靶机

有80端口访问看看他这个挺奇葩的看了wp才知道 file.php的参数是file 他会自动给你加上php 也就是说file=secret.php读不到数据要file=secret才能读到数据伪协议读取文件<?php include($_GET["file"].".php"); ?><?php system("id…

读软件开发安全之道:概念、设计与实施08密码学(下)

密码学1. 对称加密 1.1. symmetric encryption 1.2. 使用各方共享的密钥来隐藏数据1.2.1. 对称加密在本质上依赖共享密钥1.3. 所有加密都是通过对明文进行转换,把明文消息(或者原始消息)变成无法识别的形式(也称为密文)​,从而隐藏原始消息内容的 1.4. 可逆的转换称为对称…