NOIP2011

DAY1

铺地毯
(carpet.cpp/c/pas)

模拟

倒序离线处理

 1 program carpet;
 2 var
 3   l,w:array[0..10000,1..2] of longint;
 4   n,i,a,b,g,k,x,y:longint;
 5   flag:boolean;
 6 begin
 7 assign(input,‘carpet.in‘);
 8 reset(input);
 9 assign(output,‘carpet.out‘);
10 rewrite(output);
11   readln(n);
12   for i:=1 to n do
13    begin
14      readln(a,b,g,k);
15      l[i,1]:=a;
16      l[i,2]:=a+g;
17      w[i,1]:=b;
18      w[i,2]:=b+k;
19    end;
20   readln(x,y);
21   flag:=true;
22   for i:=n downto 1 do
23    if (l[i,1]<=x)and(x<=l[i,1]) and (w[i,1]<=y)and(y<=w[i,2]) then
24     begin writeln(i); flag:=false; break; end;
25   if flag then writeln(-1);
26 close(input);
27 close(output);
28 end.

我今年的程序

 1 var
 2   n,i,g,k,x,y:longint;
 3   a,b,c,d:array[1..10000] of longint;
 4 begin
 5 assign(input,‘carpet.in‘);
 6 reset(input);
 7 assign(output,‘carpet.out‘);
 8 rewrite(output);
 9   readln(n);
10   for i:=1 to n do
11    begin
12      readln(a[i],b[i],g,k);
13      c[i]:=a[i]+g;
14      d[i]:=b[i]+k;
15    end;
16   readln(x,y);
17   for i:=n downto 1 do
18    if (x>=a[i]) and (x<=c[i]) and (y>=b[i]) and (y<=d[i])
19     then begin writeln(i); close(input); close(output); halt; end;
20   writeln(-1);
21 close(input);
22 close(output);
23 end.
24
25 program P620;
26 var
27   x,y,n,a1,b1,i,j,s:longint;
28   a,b,c,d:array[1..10000] of longint;
29 begin
30 assign(input,‘carpet.in‘);
31 reset(input);
32 assign(output,‘carpet.out‘);
33 rewrite(output);
34   readln(n);
35   for i:=1 to  n do
36   begin
37     readln(a[i],b[i],a1,b1);
38     c[i]:=a[i]+a1;
39     d[i]:=b[i]+b1;
40   end;
41   readln(x,y);
42   s:=-1;
43    for i:=1 to n do
44     if (a[i]<=x)and(b[i]<=y)and(c[i]>=x)and(d[i]>=y) then s:=i;
45    writeln(s);
46 end.

我以前的程序

时间: 2024-10-13 18:58:25

NOIP2011的相关文章

[NOIP2011] 计算系数(二项式定理)

题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k ,n ,m,每两个整数之间用一个空格隔开. 输出格式: 输出共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果. 输入输出样例 输入样例#1: 1 1 3 1 2 输出样例#1: 3 说明 [数据范围] 对于30% 的数据,有 0 ≤k ≤10 : 对于50% 的

NOIP2011聪明的质监员题解

631. [NOIP2011] 聪明的质监员 ★★   输入文件:qc.in   输出文件:qc.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从 1 到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是: 1. 给定 m个区间[Li,Ri]: 2. 选出一个参数W: 3. 对于一个区间[Li,Ri],计算矿石在这个区间上的检验值Yi: Yi=∑j1×∑jvj, j∈[

[NOIP2011] 洛谷P1313 计算系数

题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k ,n ,m,每两个整数之间用一个空格隔开. 输出格式: 输出共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果. 输入输出样例 输入样例#1: 1 1 3 1 2 输出样例#1: 3 说明 [数据范围] 对于30% 的数据,有 0 ≤k ≤10 : 对于50% 的

[noip2011]铺地毯(carpet)解题报告

最近在写noip2011的题,备战noip,先给自己加个油! 下面是noip2011的试题和自己的解题报告,希望对大家有帮助,题目1如下 1.铺地毯(carpet.cpp/c/pas) [问题描述]为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有n 张地毯,编号从1 到n.现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上.地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的

NOIP2011 普及组 T3 洛谷P1309 瑞士轮

今天题做太少,放道小题凑数233 题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长. 本题中介绍的瑞士轮赛制,因最早使用于1895年在瑞士举办的国际象棋比赛而得名.它可以看作是淘汰赛与循环赛的折衷,既保证了比赛的稳定性,又能使赛程不至于过长. 题目描述 2*N 名编号为 1~2N 的选手共进行R 轮比赛.每轮比赛开始前,以及所有比赛结束后,都

洛谷P1311 [NOIP2011提高组Day1T2] 选择客栈

P1311 选择客栈 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中.晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p . 他们想知道总共有多少种选择

洛谷P1003 [NOIP2011提高组Day1T1]铺地毯

P1003 铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上. 地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号.注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖. 输入输出格式 输入格式: 输入文件名为carpet.in . 输入共n+2 行. 第一行,一个整数n

【NOIP2011】聪明的质检员

Description 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从 1 到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是: 1. 给定 m个区间[Li,Ri]: 2. 选出一个参数W: 3. 对于一个区间[Li,Ri],计算矿石在这个区间上的检验值Yi: 这批矿产的检验结果Y为各个区间的检验值之和.即: 若这批矿产的检验结果与所给标准值 S 相差太多,就需要再去检验另一批矿产.小 T 不想费时间去检验另一批矿产,所以他想通过调整参数 W

[NOIP2011]刷水

前几天做了NOIP2011的题,感觉不是那么难. 这边先做了两天的前两题,T3还没打. D1T1:顺次读入,分别判断是否覆盖即可,照例大水: #include<cstdio> int x,y,a[10001],b[10001],c[10001],d[10001],n,ans=-1; int main() { scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d%d%d%d",a+i,b+i,c+i,d

NOIP2011选择客栈[递推]

题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中.晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p . 他们想知道总共有多少种选择住宿的方案,保证晚上可