【题目链接】

ybt 1118:铺地毯
ybt 1863:【11NOIP提高组】铺地毯
OpenJudge NOI 1.9 14:铺地毯
洛谷 P1003 [NOIP2011 提高组] 铺地毯

【题目考点】

1. 结构体

2. 数组

【解题思路】

  • 设结构体Carpet表示地毯,其中4个成员变量,(xmin, ymin)表示地毯左下点的坐标,(xmax, ymax)表示地毯右上点的坐标。设构造函数,用输入的a,b(左下角点的坐标),g,k(地毯横纵向长度)来计算出4个成员变量。设成员函数contains判断某一点是否被该地毯盖住。
  • 主函数中,设Carpet类型数组,表示多个地毯。
    • 输入数据,初始化前n个地毯。输入要盖住的点x,y
    • 从后向前遍历地毯数组,只要找到一个能盖住x,y点的地毯,就输出该地毯的编号,并结束程序。因为后输入的地毯,一定是盖在更上面的地毯。
    • 如果遍历没能找到盖住x,y点的地毯,那么该点没被盖住,输出-1。
  • : 有些同学在解题时抗拒使用结构体。这一问题不用结构体确实可以写。理论上实现任何程序都可以不用结构体。但结构体,或者说类,可以让人们能够更简单地将人的思维翻译成程序语言。写代码时使用结构体更符合人的思维习惯,写出的代码更加直观易懂。建议同学们要学会使用结构体。

【题解代码】

解法1:

#include <bits/stdc++.h>
using namespace std;
typedef struct Carpet
{int xmin, xmax, ymin, ymax;Carpet(){}Carpet(int a, int b, int g, int k)//用左下角坐标及横纵方向长度来初始化4个成员变量 {xmin = a;ymin = b;xmax = a + g;ymax = b + k;}bool contains(int x, int y)//地毯是否盖住(x,y)点{return x >= xmin && x <= xmax && y >= ymin && y <= ymax;}
}Carpet;int main()
{int n, a, b, g, k, x, y; Carpet carp[10005];cin>>n;for(int i = 1; i <= n; ++i){cin>>a>>b>>g>>k;carp[i] = Carpet(a, b, g, k);}cin>>x>>y;for(int i = n; i >= 1; --i)//从后向前遍历,找到的第一个包含x,y点的地毯就是这一点最上面的地毯 {if(carp[i].contains(x, y))//若地毯i覆盖了点x,y {cout<<i;return 0;}}cout<<-1;//若没有被地毯覆盖 return 0;
}

信息学奥赛一本通 1118:铺地毯 | 1863:【11NOIP提高组】铺地毯 | OpenJudge NOI 1.9 14 | 洛谷 P1003 [NOIP2011 提高组] 铺地毯相关推荐

  1. 信息学奥赛一本通 1089:数字反转 | 1953:【11NOIP普及组】数字反转 | OpenJudge NOI 1.5 29 | 洛谷 P1307 [NOIP2011 普及组] 数字反转

    [题目链接] ybt 1089:数字反转 ybt 1953:[11NOIP普及组]数字反转 OpenJudge NOI 1.5 29:数字反转 洛谷 P1307 [NOIP2011 普及组] 数字反转 ...

  2. 信息学奥赛一本通 1400:统计单词数 | 1954:【11NOIP普及组】统计单词数 | OpenJudge NOI 1.12 05 | 洛谷 P1308 [NOIP2011 普及组] 统计单词数

    [题目链接] ybt 1400:统计单词数 ybt 1954:[11NOIP普及组]统计单词数 OpenJudge NOI 1.12 05:统计单词数 洛谷 P1308 [NOIP2011 普及组] ...

  3. 信息学奥赛一本通 1179:奖学金 | 1938:【07NOIP普及组】奖学金 | OpenJudge NOI 1.10 04 | 洛谷 P1093 [NOIP2007 普及组] 奖学金

    [题目链接] ybt 1179:奖学金 ybt 1938:[07NOIP普及组]奖学金 OpenJudge NOI 1.10 04:奖学金 洛谷 P1093 [NOIP2007 普及组] 奖学金 [题 ...

  4. 信息学奥赛一本通 1958:【12NOIP普及组】寻宝 | OpenJudge NOI 1.12 06 | 洛谷 P1076 [NOIP2012 普及组] 寻宝

    [题目链接] ybt 1958:[12NOIP普及组]寻宝 洛谷 P1076 [NOIP2012 普及组] 寻宝 OpenJudge NOI 1.12 06:寻宝 [题目考点] 1. 模拟 2. 循环 ...

  5. 信息学奥赛一本通 1100:金币 | 1969:【15NOIP普及组】金币 | OpenJudge NOI 1.5 45 | 洛谷 P2669 [NOIP2015 普及组] 金币

    [题目链接] ybt 1100:金币 ybt 1969:[15NOIP普及组]金币 OpenJudge NOI 1.5 45:金币 洛谷 P2669 [NOIP2015 普及组] 金币 [题目考点] ...

  6. 信息学奥赛一本通 1173:阶乘和 | OpenJudge NOI 1.6 15 | 洛谷 P1009 [NOIP1998 普及组] 阶乘之和

    [题目链接] ybt 1173:阶乘和 注:一本通上这题,应该把n≤50n\le50n≤50当做n≤100n\le100n≤100来看 OpenJudge NOI 1.6 15:阶乘和 洛谷 P100 ...

  7. 信息学奥赛一本通 1239:统计数字 | 1847:【07NOIP提高组】统计数字 | OpenJudge NOI 2.4 7909 | 洛谷 P1097 [NOIP2007 提高组] 统计数字

    [题目链接] ybt 1239:统计数字 ybt 1847:[07NOIP提高组]统计数字 一本通中限制不许使用STL,那么引入头文件不能写<bits/stdc++.h>,只能写<i ...

  8. 信息学奥赛一本通 1233:接水问题 | 1950:【10NOIP普及组】接水问题 | OpenJudge NOI 1.9 15 | 洛谷 P1190 [NOIP2010 普及组] 接水问题

    [题目链接] ybt 1233:接水问题 ybt 1950:[10NOIP普及组]接水问题 OpenJudge NOI 1.9 15:接水问题 洛谷 P1190 [NOIP2010 普及组] 接水问题 ...

  9. 信息学奥赛一本通 1180 | 1946:【09NOIP普及组】分数线划定 | OpenJudge NOI 1.10 05 | 洛谷 P1068 [NOIP2009 普及组] 分数线划定

    [题目链接] ybt 1180:分数线划定 ybt 1946:[09NOIP普及组]分数线划定 OpenJudge NOI 1.10 05:分数线划定 洛谷 P1068 [NOIP2009 普及组] ...

最新文章

  1. 华为手机的“美国梦”
  2. 指针和Const限定符
  3. 产品待办列表如何精化?
  4. python easygui_极客养成记/Python一点也不难/第四节
  5. 在mysql-workbench中运行set和declare并且观察区别
  6. php 定时缓存,php定时清理缓存文件的简单示例
  7. 简单async/wait使用样例
  8. PAT 1060 Are They Equal (25 分)
  9. rabbitmq如何清空queue队列数据
  10. 传统的6d位姿估计fangfa1_基于视觉的机器人抓取从物体定位、位姿估计到抓取位姿估计 | 公开课预告...
  11. CSS圆角兼容IE6
  12. Linux卸载系统盘,Linux磁盘管理(创建、卸载、挂载磁盘)
  13. .net5 和 .net6 部署到 IIS 完整步骤
  14. 代理工具及使用技巧Proxy Hunter
  15. 久其报表大厅_久其报表是什么?
  16. ESX VMware是什么
  17. 诺贝尔奖得主纳什夫妇因车祸去世
  18. 网站地图(sitemap)如何优雅生成?
  19. NoiOpenjudge水题选刷之_搜索
  20. SAR-Scape处理SBAS-InSAR报错原因之一

热门文章

  1. 超级灰色按钮克星1.4.1309.12
  2. [翻译]当SA帐号丢失时怎么办
  3. 编译asp.net文件为dll文件
  4. 一文掌握常用的机器学习模型(免费课程+送书福利)
  5. TED演讲:数据科学家最重要的技能是什么
  6. 屏幕小于6英寸的手机_vivo新机成最轻薄手机?6.56英寸屏幕,重量仅178g
  7. InnoDB自增原理都搞不清楚,还怎么CRUD?
  8. 面试官:备战年终,这些面试考点,请你牢牢记住
  9. SpringCloud微服务:基于Nacos组件,整合Dubbo框架
  10. Shell编程入门(第二版)(上)