NOIP(十)

 
 

测试三[20190731]

 
 

时间:2019年7月31日 星期三

 
 

出题:灰灰老师

 
 

测试时间:90分钟

 
 

测试工具:lemon/cena

 
 

默认分值:100

 
 

默认时间限制:1000ms

 
 

默认空间限制:64mb

 
 

编译器时间限制:10000ms

 
 

校验器时间限制:10000ms

 
 

源程序大小限制:1250KB

 
 

测试线程数:1

 
 

输入文件扩展名:in

 
 

输出文件扩展名:out;ans

 
 

编译器:gcc/g++

 
 

源程序拓展名:c

 
 

编程语言:C++

 
 

测试样例输入:#1

 
 

测试样例输出:#2

 
 

第一题:

 
 

题目描述

 
 

apple.cpp apple.exe apple.in apple.out

 
 

题目描述

 
 

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

 
 

现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

 
 

输入格式

 
 

输入包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

 
 

输出格式

 
 

输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

 
 

输入输出样例

 
 

输入 #1

 
 
100 200 150 140 129 134 167 198 200 111
110
 
 

输出 #1

 
 
5
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 

第二题:

 
 

题目描述

 
 

tree.cpp tree.exe tree.in tree.out

 
 

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,…,…,L,都种有一棵树。

 
 

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

 
 

输入格式

 
 

第一行有2个整数L (1≤L≤10000)和M (1≤M≤100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。
接下来的M行每行包含2个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

 
 

输出格式

 
 

1个整数,表示马路上剩余的树的数目。

 
 

输入输出样例

 
 

输入 #1

 
 
500 3
150 300
100 200
470 471
 
 

输出 #1

 
 
298
 
  
 
 
  
 
 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

第三题:

 
 

题目描述

 
 

fish.cpp fish.exe fish.in fish.out

 
 

小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。

 
 

输入格式

 
 

一行内输入一串整数,以0结束,以空格间隔。

 
 

输出格式

 
 

一行内倒着输出这一串整数,以空格间隔。

 
 

输入输出样例

 
 

输入 #1

 
 
3 65 23 5 34 1 30 0
 
 

输出 #1

 
 
30 1 34 5 23 65 3
 
 

 

 
 

第四题:

 
 

题目描述

 
 

lovely.cpp lovely.exe lovely.in lovely.out

 
 

人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。

 
 

输入格式

 
 

第一行输入一个整数n,表示鱼的数目。

 
 

第二行内输入n个整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度。

 
 

输出格式

 
 

行内输出n个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。

 
 

输入输出样例

 
 

输入 #1

 
 
6
4 3 0 5 1 2
 
 

输出 #1

 
 
0 0 0 3 1 2
 
 

说明/提示

 
 

n<=100

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

第五题:

 
 

题目描述

 
 

algorithm.cpp algorithm.exe algorithm.in algorithm.out

 
 

珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。

 
 

某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?

 
 

最近老师出了一些测验题,请你帮忙求出答案。

 
 

输入格式

 
 

共两行,第一行包含一个整数n,表示测试题中给出的正整数个数。

 
 

第二行有n个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。

 
 

输出格式

 
 

一个整数,表示测验题答案。

 
 

输入输出样例

 
 

输入 #1

 
 
4
1 2 3 4
 
 

输出 #1

 
 
2
 
 

说明/提示

 
 

【样例说明】

 
 

由1+2=3,1+3=4,故满足测试要求的答案为2。

 
 

注意,加数和被加数必须是集合中的两个不同的数。

 
 

【数据说明】

 
 

对于100%的数据,3 ≤ n≤100,测验题给出的正整数大小不超过10,000.

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

第六题

 
 

题目描述

 
 

weather.cpp weather.exe weather.in weather.out

 
 

炎热的夏日,KC 非常的不爽。他宁可忍受北极的寒冷,也不愿忍受厦门的夏天。最近,他开始研究天气的变化。他希望用研究的结果预测未来的天气。

 
 

经历千辛万苦,他收集了连续 N (1≤N≤106) 的最高气温数据。

 
 

现在,他想知道最高气温一直上升的最长连续天数。

 
 

输入格式

 
 

第 1 行:一个整数 NN。1≤N≤106

 
 

第 2 行:N个空格隔开的整数,表示连续 NN天的最高气温。0≤ 最高气温 ≤10^9 。

 
 

输出格式

 
 

1 行:一个整数,表示最高气温一直上升的最长连续天数。

 
 

输入输出样例

 
 

输入 #1

 
 
10
1 2 3 2 4 5 6 8 5 9
 
 

输出 #1

 
 
5
 
 

 




1
#include <bits/stdc++.h> 2 using namespace std; 3 int height[20],H,s; 4 //陶陶家的院子里有一棵苹果树 5 int main(){ 6 freopen("apple.in","r",stdin); 7 freopen("apple.out","w",stdout); 8 for(int i = 0;i < 10;i++){ 9 cin >> height[i]; 10 } 11 cin >> H; 12 H += 30; 13 for(int i = 0;i < 10;i++){ 14 s += !(H<height[i]); 15 } 16 cout << s; 17 fclose(stdin); 18 fclose(stdout); 19 }
 1 #include <bits/stdc++.h>
 2 using namespace std; 
 3 int x[100],c = 0;
 4 //小鱼最近被要求参加一个数字游戏, 
 5 int main(){
 6     freopen("fish.in","r",stdin);
 7     freopen("fish.out","w",stdout);
 8     for(int i=0;;i++){
 9         cin>>x[i];
10         if(x[i]==0) break; 
11         c=i;
12     }
13     for(int j=c;j>=0;j--)
14     cout<<x[j]<<" ";
15     fclose(stdin);
16     fclose(stdout);
17     return 0;
18 }
 1 #include <bits/stdc++.h>
 2 using namespace std; 
 3 int a[101],b[101],n;
 4 //人比人,气死人;鱼比鱼,难死鱼 
 5 int main(){
 6     freopen("lovely.in","r",stdin);
 7     freopen("lovely.out","w",stdout);
 8     cin>>n;
 9     for (int i=1;i<=n;i++)//读入每条鱼的可爱值
10         cin>>a[i];
11     for (int i=1;i<=n;i++)//枚举N条鱼
12         for (int j=i;j>=1;j--)//从第I个位置倒着往前找
13         {
14             if (a[j]<a[i])
15             b[i]++;//如果找到比第I条鱼丑的,统计数组b对应的b[i]+1
16         }
17     for (int i=1;i<=n;i++) cout<<b[i]<<" ";//输出
18     fclose(stdin);
19     fclose(stdout);
20     return 0;
21 }
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 //校门外的树 
 4 int L,M;
 5 //变量名称与原题相同
 6 int cnt=0;
 7 //剩余树的数目
 8 int vis[10000+10];
 9 //用来判断树木有没有被访问过
10 int main(){
11     freopen("tree.in","r",stdin);
12     freopen("tree.out","w",stdout);
13     memset(vis,0,sizeof(vis));//初始化该数组
14     cin >> L >> M;//标准输入,不解释
15     for(int i = 0;i <= L;i++){
16         vis[i] = 0;//从0这个树开始,将这条路上所有的树标记为未访问过
17     }
18     for(int i = 1;i <= M;i++){
19         int head,tail;//定义区间的头和尾
20         cin >> head >> tail;
21         for(int j = head;j <= tail;j++)
22             if(vis[j] == 0){
23                 //从这个区间的头和尾开始,将所有区间内的树标记为访问过
24                 vis[j] = 1;
25             }
26     }
27     for(int i = 0;i <= L;i++){
28         if(vis[i] == 0)
29             cnt++;//计算未被访问过的树的数目
30     }
31     cout << cnt << endl;
32     fclose(stdin);
33     fclose(stdout);
34     return 0;
35 } 
 1 #include <bits/stdc++.h>
 2 using namespace std; 
 3 //炎热的夏日,KC 非常的不爽。 
 4 int main(){
 5     freopen("weather.in","r",stdin);
 6     freopen("weather.out","w",stdout);
 7     int n,tem1=0,tem2=0,a=0,b=0;//分别是N,温度1,温度2,以及统计天数用的两个参量 
 8     cin>>n;
 9     for(int k=0;k<n;k++){
10         cin>>tem2;
11         if(tem2>tem1)
12             a+=1;//若第二天(tem2)的温度大于前一天的温度(tem1),则天数加一 
13         else{
14             b=(a>b)?a:b;//否则,令b等于a,b中较大值 
15             a=0;//并把a清空 
16         }
17         tem1=tem2;//对于第三天来说,第三天的温度是tem2,第二天的温度是tem1 
18     }
19     cout<<b+1;//本代码天数统计的起点是0,但题目是1,也可在初始赋值是将a=0改为a=1 
20     fclose(stdin);
21     fclose(stdout);
22     return 0;
23 }

猜你喜欢

转载自www.cnblogs.com/huihuilaoshi/p/11278274.html