NOIP2011提高组题报告day1NOIP2011提高组解题报告day1.doc

NOIP2011提高组题报告day1NOIP2011提高组解题报告day1.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NOIP2011提高组题报告day1NOIP2011提高组解题报告day1

NOIP2011提高组解题报告day1 (2011-12-13 09:29:54) 标签:  HYPERLINK /?c=blogq=%D4%D3%CC%B8by=tag \t _blank 杂谈铺地毯 【问题描述】 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标 系的第一象限)铺上一些矩形地毯。一共有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。 【输入输出样例】 carpet.in 3 1 0 2 3 0 2 3 3 2 1 3 3 2 2 3 ?carpet.out 3 【解题报告】 从后往前扫,找到第一个覆盖这个点的就输出,否则无解。 program carpet; //uses sysutils; var ? n,i,a,b:longint; ? x2,x1,y1,y2:array[0..100001]of longint; //time:extended; procedure main; begin ? readln(n); ? for i:=1 to n do ? begin ??? readln(x1[i],y1[i],a,b); ??? x2[i]:=x1[i]+a; ??? y2[i]:=y1[i]+b; ? end; ? readln(a,b); ? for i:=n downto 1 do if (a=x2[i])and(a=x1[i])and(b=y1[i])and(b=y2[i]) then ? begin ??? writeln(i); ??? exit; ? end; ? writeln(-1); end; begin assign(input,carpet.in); ? reset(input); ? assign(output,carpet.out); ? rewrite(output); //time:=now;?//当前时间 ?main; //writeln((now-time)*24*3600:0:2);//输出程序运行时间 close(input); ? close(output); end. 选择客栈 【问题描述】 丽江河边有 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.inhotel.out5 2 3 0 5 1 3 0 2 1 4 1 53【输入输出样例说明】 客栈编号①②③④⑤色调01011最低消费532452 人要住同样色调的客栈,所有可选的住宿方案包括:住客栈①③,②④,②⑤,④⑤,但是若选择住4、5 号客栈的话,4、5 号客栈之间的咖啡店的最低消费是4,而两人能承受的最低消费是3 元,所以不满足要求。因此只有前3 种方案可选。 【数据范围】 对于 30%的数据,有n≤100; 对于

文档评论(0)

zyongwxiaj8 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档