11届蓝桥杯B组省赛第一轮

试题 A: 跑步训练
本题总分:5 分

【问题描述】

小明要做一个跑步训练。

初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗

600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是

均匀变化的。

小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循

环。如果某个时刻小明的体力到达 0,他就停止锻炼。

请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案。

答案中只填写数,不填写单位。

【答案提交】

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个

整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

//A:3840
//code:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int tili = 10000;
bool tag = true;
int m;
int main() {
    while (true) {
        if (tili <600 && tag) {
            break;
        }
        if (tag) {
            tili -= 600;
            m++;
            tag = false;
        }
        else {
            tili += 300;
            m++;
            tag = true;
        }
    }
    cout << m*60 << endl;
    return 0;
}

试题 B: 纪念日
本题总分:5 分

【问题描述】

2020 年 7 月 1 日是A组织 成立 99 周年纪念日。

A组织成立于 1921 年 7 月 23 日。

请问从 1921 年 7 月 23 日中午 12 时到 2020 年 7 月 1 日中午 12 时一共包

含多少分钟?

【答案提交】

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个

整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

可以使用Excel解

B:52038720

试题 D: REPEAT 程序
本题总分:10 分

【问题描述】

附件 prog.txt 中是一个用某种语言写的程序。

其中 REPEAT k 表示一个次数为 k 的循环。循环控制的范围由缩进表达,

从次行开始连续的缩进比该行多的(前面的空白更长的)为循环包含的内容。

例如如下片段:

REPEAT 2:

A = A + 4

REPEAT 5:

REPEAT 6:

A = A + 5

A = A + 7

A = A + 8

A = A + 9

该片段中从 A = A + 4 所在的行到 A = A + 8 所在的行都在第一行的

循环两次中。

REPEAT 6: 所在的行到 A = A + 7 所在的行都在 REPEAT 5: 循环中。

A = A + 5 实际总共的循环次数是 2

×

5

×

6 = 60 次。

请问该程序执行完毕之后,A 的值是多少?

【答案提交】

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个

整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

与python的语法相似,使用缩进的方式来区分域,题目的意思就是嵌套循环

D:403

试题 F: 整除序列
时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分

【问题描述】

有一个序列,序列的第一个数是 n,后面的每个数是前一个数整除 2,请输

出这个序列中值为正数的项。

【输入格式】

输入一行包含一个整数 n。

【输出格式】

输出一行,包含多个整数,相邻的整数之间用一个空格分隔,表示答案。

【样例输入】

20

【样例输出】

20 10 5 2 1

【评测用例规模与约定】

对于 80% 的评测用例,1 ≤ n ≤ 10^9。

对于所有评测用例,1 ≤ n≤ 10^18。

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

int main() {
    int key;
    cin >> key;
    while (key) {
        cout << key << " ";
        key=key>>1;
    }
    return 0;
}

试题 G: 解码
时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分

【问题描述】

小明有一串很长的英文字母,可能包含大写和小写。

在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表

达得更短:将连续的几个相同字母写成字母 + 出现次数的形式。

例如,连续的 5 个 a,即 aaaaa,小明可以简写成 a5(也可能简写成 a4a、

aa3a 等)。对于这个例子:HHHellllloo,小明可以简写成 H3el5o2。为了方便表

达,小明不会将连续的超过 9 个相同的字符写成简写的形式。

现在给出简写后的字符串,请帮助小明还原成原来的串。

【输入格式】

输入一行包含一个字符串。

【输出格式】

输出一个字符串,表示还原后的串。

【样例输入】

H3el5o2

【样例输出】

HHHellllloo

【评测用例规模与约定】

对于所有评测用例,字符串由大小写英文字母和数字组成,长度不超过

100。

请注意原来的串长度可能超过 100。

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
    string s;
    char pre;
    char next;
    cin >> s;
    char cs[500];
    for (int i = 0; i <= s.size()-1;i++) {
        cs[i] = s[i];
    }
    for (int i = 0; i <=s.size() - 1; i++) {
        if (i==s.size()-1&&cs[i]<'0'&&cs[i]>'9') {
            cout << cs[i];
            break;
        }
        pre = cs[i];
        next = cs[i + 1];
        if (next>='1'&&next<='9') {
            for (int j = 0; j < next-'0';j++) {
                cout << pre;
            }
            i += 1;
        }
        else {
            cout << pre;
        }
    }
    return 0;
}

试题 H: 走方格
时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分

【问题描述】

在平面上有一些二维的点阵。

这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,

从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示。

现在有个人站在第 1 行第 1 列,要走到第 n 行第 m 列。只能向右或者向下

走。

注意,如果行号和列数都是偶数,不能走入这一格中。

问有多少种方案。

【输入格式】

输入一行包含两个整数 n, m。

【输出格式】

输出一个整数,表示答案。

【样例输入】

3 4

【样例输出】

2

【样例输入】

6 6

【样例输出】

0

【评测用例规模与约定】

对于所有评测用例,1 ≤ n ≤ 30, 1 ≤ m ≤ 30。

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int cnt = 0;
int zx,zy;
void dfs(int x, int y) {
    if (x==zx && y==zy) {
        cnt++;
        return;
    }
    if (x%2==0 && y%2==0) {
        return;
    }
    if (x+1<=zx) {
        dfs(x + 1, y);
    }
    if (y+1<=zy) {
        dfs(x, y + 1);
    }
}


int main() {
    cin >> zx >> zy;
    //偶数是走不到终点的
    if (zx%2==0 && zy%2==0) {
        cout << 0;
        return 0;
    }
    dfs(1,1);
    cout << cnt;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值