陪伴孩子成长学习的地方 ------ 扫码添加微信

2019年暑期-第二期模拟题

第一题 危险的实验(dangerous)

【题意分析】

小明最近在上化学课,他需要使用到n种化学物质来进行他的实验。在做实验的时候,他需要将所有化学物质放在桌面上,按次序排成一条直线。

然而每一种化学物质都是危险品,对于第i个化学物质,如果有另外一个化学物质距离它的距离小于ai,那么就会发生爆炸。

小明想知道如果要安全的完成他的实验,桌子最短可以多短。

将n个化学物质放在桌子上,给出它们与附近化学物质的安全距离,请问最短需要多长的桌子。

 

【输入格式】

 第一行一个整数n,表示化学物质的个数。 第二行有n个整数,第i个整数ai表示第i个化学物质必须与其他化学物质保持的距离。

【输出格式】

输出一个整数,表示可以安全完成实验的桌子的最小长度

输入样例

3

3 1 2

 

输出样例

5

【数据范围】

20%的数据,1<=n<=20

50%的数据,1<=n<=100000

100%的数据,1<=n<=1000000,1<=ai<=100000

【试题难度】

★☆☆☆☆

 

 

 

第二题 字符串

【题意分析】

    给出一个字符串s和t,求s中有多少个不重复的t。

【数据范围】

50%的数据,1<=字符串T长度<=20000, 1<=字符串S长度<=100

100%的数据,1<=字符串T长度<=1000000, 1<=字符串S长度<=100000。其中多数是随机产生。

【试题难度】

    ★★★☆☆
                                         第三题 探测器

【题意分析】
一个n*n的网格图上有m个探测器,每个探测器有个探测半径r,问这n*n个点中有多少个点能被探测到。
【输入格式】
第一行3个整数n,m,r
接下来m行,每行两个整数x,y表示第i个探测器的坐标
【输出格式】
能被探测到的点的个数
【样例输入】
5 2 1
3 3
4 2
【样例输出】
8
【数据范围】
1<=n,m<=100
【试题难度】

    ★★☆☆☆

 

 

阅读程序写结果

#include <stdlib>

using namespace std;
char st[100];
int main() {
scanf("%s", st);
for (int i = 0; st[i]; ++i) {
if (‘A’ <= st[i] && st[i] <= ‘Z’)
st[i] += 1;
}
printf("%s\n", st);
return 0;
}
输入:QuanGuoLianSai
输出:_________

#include <iostream>
using namespace std;
int n, m;
int findans(int n, int m) {
if (n == 0) return m;
if (m == 0) return n % 3;
return findans(n - 1, m) - findans(n, m - 1) + findans(n -
1, m - 1);
}
int main(){
cin >> n >> m;
cout << findans(n, m) << endl;
return 0;
}
输入:5 6
输出:_________

 

 

posted @ 2019-08-10 15:55  极光编程小助手  阅读(607)  评论(0编辑  收藏  举报