NOIP进步组复赛试题与简解转载.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NOIP进步组复赛试题与简解转载

Day1 铺地毯 【问题描述】 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有n 张地毯,编号从1 到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。 【输入】 输入文件名为 carpet.in。 输入共 n+2 行。 第一行,一个整数 n,表示总共有n 张地毯。 接下来的 n 行中,第i+1 行表示编号i 的地毯的信息,包含四个正整数a,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标(a,b)以及地毯在x轴和y 轴方向的长度。 第 n+2 行包含两个正整数x 和y,表示所求的地面的点的坐标(x,y)。 【输出】 输出文件名为 carpet.out。 输出共 1 行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出-1。 【输入输出样例 1】 carpet.in carpet.out 3 1 0 2 3 0 2 3 3 2 1 3 3 2 2 3 【输入输出样例说明】 如下图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,覆盖点(2,2)的最上面一张地毯是3 号地毯。 【输入输出样例 2】 carpet.in carpet.out 3 1 0 2 3 0 2 3 3 2 1 3 3 4 5 -1 【输入输出样例说明】 如上图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,点(4,5)没有被地毯覆盖,所以输出-1。 【数据范围】 对于 30%的数据,有n≤2; 对于 50%的数据,0≤a, b, g, k≤100; 对于 100%的数据,有0≤n≤10,000,0≤a, b, g, k≤100,000。 【一句话题意】 给定n个按顺序覆盖的矩形,求某个点最上方的矩形编号。 【考察知识点】 枚举 【思路】 好吧我承认看到图片的一瞬间想到过二维树状数组和二维线段树。 置答案ans=-1,按顺序枚举所有矩形,如果点在矩形内则更新ans。注意题中给出的不是对角坐标,实际上是(a,b)与(a+g,b+k)。 还有一种办法可以从n到1枚举矩形,一旦在矩形内就直接输出,可能会快一点。不过对于这题的范围什么都是浮云。。 恩,写完这题一看还没过8:30 【时间复杂度】 O(n) 选择客栈 【问题描述】 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从1 到n 编号。每家客栈都按照某一种色调进行装饰(总共k 种,用整数0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过p。 他们想知道总共有多少种选择住宿的方案,保证晚上可以找到一家最低消费不超过p元的咖啡店小聚。 【输入】 输入文件 hotel.in,共n+1 行。 第一行三个整数 n,k,p,每两个整数之间用一个空格隔开,分别表示客栈的个数,色调的数目和能接受的最低消费的最高值;接下来的 n 行,第i+1 行两个整数,之间用一个空格隔开,分别表示i 号客栈的装饰色调和i 号客栈的咖啡店的最低消费。 【输出】 输出文件名为 hotel.out。 输出只有一行,一个整数,表示可选的住宿方案的总数。 【输入输出样例 1】 hotel.in hotel.out 5 2 3 0 5 1 3 0 2 1 4 1 5 3 【输入输出样例说明】 客栈编号 ① ② ③ ④ ⑤ 色调 0 1 0 1 1 最低消费 5 3 2 4 5 2 人要住同样色调的客栈,所有可选的住宿方案包括:住客栈①③,②④,②⑤,④⑤,但是若选择住4、5 号客栈的话,4、5 号客栈之间的咖啡店的最低消费是4,而两人能承受的最低消费是3 元,所以不满足要求。因此只有前3 种方案可选。 【数据范围】 对于 30%的数据,有n≤100; 对于 50%的数据,有n≤1,000; 对于 100%的数据,有2≤n≤200,000,0k≤50,0≤p≤100, 0≤最低消费≤100。 【一句话题意】 合法区间[l,r]定义:l,r的色调相同,且[l,r]之间存在一个最低消费不超过p。求合法区间总数。 【考察知识点】 二分查找/枚举 【思路】 贴吧神吐槽:CCF收了丽江多少钱? 看完题目后不知所云,再多看几遍,一个O(n^3)的算法有了一点雏形。 用两层循环枚举区间的左右

文档评论(0)

yxutcangfp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档