P1003 [NOIP2011 提高组] 铺地毯

news2024/11/24 7:29:53

题目提供者   CCF_NOI

难度  普及-

此篇必须看到底!

题目描述

为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 n 张地毯,编号从 1 到 n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。

地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。

输入格式

输入共 n + 2 行。

第一行,一个整数 n,表示总共有 n 张地毯。

接下来的 nn 行中,第 i+1 行表示编号 i 的地毯的信息,包含四个整数 a ,b ,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 (a, b) 以及地毯在 x轴和 y轴方向的长度。

第 n + 2 行包含两个整数 x 和 y,表示所求的地面的点的坐标 (x,y)。

输出格式

输出共 1 行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出 -1

输入输出样例

输入 #1

3
1 0 2 3
0 2 3 3
2 1 3 3
2 2

 输出 #1

3

输入 #2 

3
1 0 2 3
0 2 3 3
2 1 3 3
4 5

输出 #2

-1

说明/提示

【样例解释 1】

如下图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,覆盖点 (2,2) 的最上面一张地毯是 3 号地毯。

 

解析+代码:

此篇必须认真看到底!

看标签

枚举,模拟,暴力。

首先,很容易想到开一个大小 N * N 的二维数组,然而数据范围是 0 ≤ N ≤10,000

#include<iostream>
#include<cstring>
using namespace std;
const int MAXN = 10000 + 5;
int v[MAXN][MAXN]; //爆0的罪魁祸首
int main() {
	memset(v, -1, sizeof(v));
	int n;
	cin >> n;
	for(int i = 1; i <= n; i++) {
		int a, b, g, k;
		cin >> a >> b >> g >> k;
		for(int x = a; x <= a + g; x++)  {
			for(int y = b; y <= b + k; y++) {
				v[x][y] = i;
			}
		}
	}
	int x, y;
	cin >> x >> y;
	cout << v[x][y] << endl;
	return 0;
}

成功MLE

数组大小:4 * 10000 * 10000 = 400000000 Byte = 400000 KB = 400MB

跨过了MLE的红线。

另外一种方法是用四个数组来记录矩形的四个参数,再扫一遍数组,通过检查坐标 (x, y) 是否在矩形 Rect i内,更新最上面的地毯。

亲测,完美AC。

至于矩形 Rect_iRecti​ 的存储方法,可以用 a, b, g, k 四个数组分别存放左上角的坐标和左上角与右下角的距离。

#include<stdio.h>
const int MAXN = 10000 + 5;//程序里出现幻数可不是好习惯哦~
int a[MAXN], b[MAXN], g[MAXN], k[MAXN];
int main() {
    int n, x, y;
    scanf("%d", &n);
    for(int i = 0; i < n; i++) {
        scanf("%d%d%d%d", &a[i], &b[i], &g[i], &k[i]);//输入
    }
    scanf("%d%d", &x, &y);
    int ans = -1;
    for(int i = 0; i < n; i++) {
        if(x >= a[i] && y >= b[i] && x <= a[i] + g[i] && y <= b[i] + k[i]) {
            ans = i + 1;//ans的最终值恰好是最上面的那张地毯编号
        }
    }
    printf("%d\n", ans);//输出结果
    return 0;
}

成功!

 

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

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

相关文章

电力物联网是什么?在智能配电系统中有什么作用?

摘要&#xff1a;在社会经济和科学技术不断发展中&#xff0c;配电网实现了角色转变&#xff0c;传统的单向供电服务形式已经被双向能流服务形式取代&#xff0c;社会多样化的用电需求也得以有效满足。随着物联网技术的发展&#xff0c;泛在电力物联网开始应用于当今的电力系统…

便携式挂钩型儿童椅 标准ASTMF1235测试项目周期多久?

便携式挂钩型儿童椅 适用于6 个 月至 3 岁之间的儿童&#xff0c;体重不超过 37 磅&#xff0c;并具 备自主协调坐姿的能力。 那么该类产品上亚马逊需要做下面的检测&#xff1a; 便携式儿童外出餐椅 ASTM F1235-18 和 CPSIA&#xff08;铅、邻苯二甲酸盐&#xff09; 亚马逊…

新手开始学【网络安全】要怎么入门?

前言&#xff1a;网络安全如何从零开始学习&#xff0c;少走弯路&#xff1f; 目录&#xff1a; 一&#xff0c;怎么入门&#xff1f; 1、Web 安全相关概念&#xff08;2 周&#xff09;2、熟悉渗透相关工具&#xff08;3 周&#xff09;3、渗透实战操作&#xff08;5 周&…

M304A-ZN-当贝纯净桌面-卡刷固件包-内有教程

M304A-ZN-当贝纯净桌面-卡刷固件包-内有教程 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的没用的软件&#xff0c;运行速度提升…

用ChatGPT三分钟免费做出数字人视频- 提升自媒体魅力

用ChatGPT三分钟免费做出数字人视频- 提升自媒体魅力 一、ChatGPT产生文案二、腾讯智影网站三、选择一个2D数字人四、粘贴文本五、编辑自定义&#xff0c;合成六、资源七、其他数字人平台推荐八、生成视频预览 本教程收集于&#xff1a;AIGC从入门到精通教程汇总 操作指引 Ch…

KingbaseES V8R3 集群运维系列 -- sync_flag参数配置

​案例说明&#xff1a; 在KingbaseES V8R3集群一主二备的架构中&#xff0c;配置了流复制为同步(sync)模式&#xff0c;但是集群启动后&#xff0c;流复制状态中显示备库是async模式(备库和主库数据已经同步)&#xff0c;从备库的recovery.log日志也可以看到&#xff0c;备库启…

记录--前端实现点击选词功能

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 今天有一个需求&#xff0c;点击选中某个英文单词&#xff0c;然后对这个单词做一些处理&#xff0c;例如高亮背景、查看一些详细信息等等&#xff0c;今天简单实现了一下&#xff0c;效果如下&#x…

ChatGLM-6B本地cpu部署

ChatGLM-6B是清华团队研发的机器人对话系统&#xff0c;类似ChatGPT&#xff0c;但是实际相差很多&#xff0c;可以当作一个简单的ChatGPT。 ChatGLM部署默认是支持GPU加速&#xff0c;内存需要32G以上。普通的机器无法运行。但是可以部署本地cpu版本。 本地部署&#xff0c;需…

ePWM模块(3)

比较模块 CMPA:比较寄存器A,其值与TBCTR值比较,相同时,事件发送到动作模块。 CMPB:比较寄存器B,其值与TBCTR值比较,相同时,事件发送到动作模块。 CMPCTL:控制寄存器(重要) SHDWAFULL(或SHDWBFULL):CMPA(或B)阴影寄存器满标志位 0:未满 1:满了 SHDWAMODE(或…

【致敬未来的攻城狮计划】— 连续打卡第二十六天:瑞萨RA Cortex-M 内核RA2E1 RT-Thread BSP 启蒙知识

系列文章目录 由于一些特殊原因&#xff1a; 系列文章链接&#xff1a;&#xff08;其他系列文章&#xff0c;请点击链接&#xff0c;可以跳转到其他系列文章&#xff09;或者参考我的专栏“ 瑞萨MCU ”&#xff0c;里面是 瑞萨RA2E1 系列文章。 24.RA2E1的 DMAC——数据传输 …

Ubuntu设置静态IP地址的方法

今天重装了ubuntu22.04server系统&#xff0c;顺便将Ip方法的配置方法记录下&#xff0c;备存。 步骤1&#xff1a;先ifconfig查看电脑的网卡信息 找到物理网卡的名称&#xff0c;我这里是enp3s0 步骤2&#xff1a;找到gateway网关地址 输入route -n命令&#xff0c;打印路由…

数据知识驱动的城市作战元宇宙建模框架

源自&#xff1a;指挥与控制学报 作者&#xff1a;郑文博 李强 刘文礼 费爱国 王飞跃 摘 要 1 相关工作与问题提出 2 新型元宇宙框架的构建 图 1 平行智能与元宇宙 图2 数据知识驱动的城市作战元宇宙建模框架 3 案例设计 3.1 基于生成式对抗网络的表现力改进设计 图…

开关电源基础06:基本开关电源电感能量传输原理

说在开头&#xff1a;关于第六届索尔维会议&#xff08;1&#xff09; 1930年&#xff0c;第六届的索尔维会议要召开了&#xff0c;一大帮子物理学家又在深秋时节聚到了布鲁塞尔&#xff1b;玻尔来到会场时心中踹踹不安&#xff0c;看爱因斯坦似笑非笑的表情&#xff0c;吃不准…

这所院校23年分数线暴涨45分,临时扩招69人!!

本期为大家整理热门院校-“南京信息工程大学”的择校分析&#xff0c;这个择校分析专题会为大家结合&#xff1a;初试复试占比、复试录取规则&#xff08;是否公平&#xff09;、往年录取录取名单、招生人数、分数线、专业课难度等进行分析。希望能够帮到大家! –所有数据来源…

关于【SD-WEBUI】的API:开发代码示例和帮助文档

文章目录 &#xff08;零&#xff09;前言&#xff08;一&#xff09;启用API&#xff08;二&#xff09;编写调用程序&#xff08;2.1&#xff09;Python例子代码&#xff08;2.2&#xff09;执行&#xff08;2.3&#xff09;结果 &#xff08;三&#xff09;帮助文档&#xf…

第7章 动静分离

第7章 动静分离 Nginx的负载均衡和静态代理结合在一起&#xff0c;我们可以实现动静分离&#xff0c;这是实际应用中常见的一种场景。 动态资源&#xff0c;如jsp由tomcat或其他web服务器完成 静态资源&#xff0c;如图片、css、js等由nginx服务器完成 它们各司其职&#x…

苹果备忘录永久删除了怎么办?3种备忘录恢复的方法!

案例&#xff1a;iPhone备忘录彻底删除了怎么办&#xff1f; 【友友们&#xff0c;苹果备忘录永久删除了&#xff0c;还可以恢复吗&#xff1f;有什么方法&#xff1f;】 苹果备忘录是苹果系统自带的一款备忘录应用&#xff0c;可以帮助我们记录日程安排、备忘事项、重要信息等…

深度学习技巧应用13-神经网络中数据并行训练的原理

大家好,我是微学AI,今天给大家介绍一下人工智能基础部分15-神经网络中数据并行训练的原理,在神经网络中,数据并行训练是一种常用的训练技术。它利用多个GPU或多个计算机对同一个模型进行训练,不同的设备处理相同的模型和数据,但会随机选择不同的批次数据,并使用反向传播…

视频创作教程-蜜蜂剪辑软件

视频创作教程-蜜蜂剪辑软件 作者介绍 一、视频剪辑软件二、蜜蜂剪辑软件使用1.视频比例选择2.添加视频素材3.视频分割4.添加文字5.转场滤镜6.其它 三、创作实例四、软件分享 作者介绍 熊文博&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2020级硕士研究生&…

「隐语小课」LDP和CDP在联邦学习中对于隐私性以及鲁棒性的作用

本次分享内容为NDSS收录的一篇文章&#xff1a;《Local and Central Differential Privacy for Robustness and Privacy in Federated Learning》。这篇论文主要分析了LDP和CDP在联邦学习中对于隐私性以及鲁棒性的作用。围绕这篇论文的分享将分为以下4个部分&#xff1a; 动机与…