2020第十一届蓝桥杯7月省赛D题

2020第十一届蓝桥杯7月省赛D题

试题 D: REPEAT 程序

题目描述:
1
题目所给的附件代码我在最后给出因为太长了(1001行)

这道题就是一个文件读入,模拟栈的一个问题:
我们使用gets()比较方便,可以读入空格。
我们就是需要记录缩进有多少,在哪一层循环里面,循环次数是多少。
那么我们用a[]表示第i层的缩进
b[]表示第i层的循环次数
我们首先得统计缩进数有多少,用p来记录
如果当前处理的缩进数小于栈顶的缩进数,那么我们弹栈即可,否则入栈。
因为翻阅了一下.txt文件,都是+操作,我们只需要把循环次数*操作数更新到我们的ans答案中即可。
我们用w来记录当前的循环次数,如果弹栈了,那么就得把弹掉得栈得循环次数给消掉;
判断如果当前行是循环行
那么就是入栈操作,要把循环次数给乘上去,更新一下w,并且将缩进和循环次数分别加入到a[]和b[]中。
判断如果当前行是操作行
那么就是更新ans即可。

最后的答案就是:241830

代码部分:

#include <bits/stdc++.h>
using namespace std;
const int N = 2020;

char s[N];
int a[N];//第i层的缩进 
int b[N];//第i层的循环次数 

int main()
{
	int pos = 0;
	int w = 1;
	int ans = 0;
	freopen("prog.txt", "r", stdin);
	gets(s);
	a[0] = -1;//防止栈空弹栈 
	while (gets(s))
	{
		int t;
		int p = 0;
		int n = strlen(s);
		while (s[p] == ' ')
		{//统计缩进 
			p++;
		}
		while (a[pos] >= p)
		{//如果栈顶的缩进大于等于当前操作所在行的缩进,弹栈 
			w /= b[pos--];
		}
		if (s[n - 1] == ':')
		{
			t = s[n - 2] - '0';
			w *= t;
			pos++;
			a[pos] = p;
			b[pos] = t;
		}
		else
		{
			t = s[n - 1] - '0';
			ans += w * t;
		}
	}
	cout << ans << endl;
	return 0;
}

最后的prog.txt附件:

A = 0
REPEAT 2:
    A = A + 4
    REPEAT 5:
        REPEAT 6:
            A = A + 5
        A = A + 7
    REPEAT 6:
        A = A + 7
        REPEAT 4:
            A = A + 2
            A = A + 7
        A = A + 2
    REPEAT 7:
        REPEAT 4:
            A = A + 8
            A = A + 7
            A = A + 4
            A = A + 5
        A = A + 8
    REPEAT 8:
        A = A + 5
        REPEAT 1:
            A = A + 2
        REPEAT 7:
            A = A + 5
        A = A + 5
    REPEAT 2:
        REPEAT 3:
            A = A + 1
        A = A + 1
    REPEAT 5:
        A = A + 1
    REPEAT 9:
        REPEAT 6:
            A = A + 5
            A = A + 1
        REPEAT 6:
            A = A + 2
            A = A + 8
            A = A + 3
        REPEAT 2:
            A = A + 5
        REPEAT 3:
            A = A + 9
        REPEAT 1:
            A = A + 4
        REPEAT 2:
            A = A + 9
        REPEAT 1:
            A = A + 6
            A = A + 6
            A = A + 4
        REPEAT 3:
            A = A + 7
        A = A + 1
        REPEAT 2:
            A = A + 3
        REPEAT 5:
            A = A + 2
            A = A + 5
            A = A + 2
        A = A + 4
    A = A + 3
REPEAT 4:
    A = A + 4
    A = A + 3
    A = A + 7
    REPEAT 5:
        REPEAT 4:
            A = A + 5
            A = A + 7
        REPEAT 5:
            A = A + 3
        REPEAT 3:
            A = A + 3
            A = A + 1
        A = A + 8
        A = A + 2
        REPEAT 9:
            A = A + 5
        REPEAT 1:
            A = A + 5
        A = A + 2
    A = A + 8
A = A + 6
REPEAT 3:
    REPEAT 4:
        A = A + 9
        REPEAT 5:
            A = A + 2
        A = A + 1
    REPEAT 9:
        A = A + 9
        A = A + 2
        REPEAT 1:
            A = A + 6
            A = A + 8
        REPEAT 2:
            A = A + 9
            A = A + 4
        A = A + 7
    REPEAT 2:
        REPEAT 7:
            A = A + 3
            A = A + 5
        REPEAT 3:
            A = A + 5
            A = A + 3
            A = A + 6
            A = A + 4
        REPEAT 9:
            A = A + 2
            A = A + 8
            A = A + 2
        A = A + 3
    REPEAT 2:
        REPEAT 8:
            A = A + 5
            A = A + 1
        A = A + 6
        A = A + 1
    A = A + 2
    REPEAT 6:
        REPEAT 1:
            A = A + 3
        REPEAT 1:
            A = A + 2
        REPEAT 4:
            A = A + 7
            A = A + 1
        A = A + 8
        REPEAT 6:
            A = A + 5
        REPEAT 6:
            A = A + 3
        REPEAT 2:
            A = A + 2
            A = A + 9
        A = A + 7
    REPEAT 9:
        A = A + 8
        REPEAT 9:
            A = A + 8
            A = A + 9
            A = A + 3
        A = A + 2
        REPEAT 6:
            A = A + 3
        REPEAT 9:
            A = A + 1
        A = A + 9
        A = A + 5
        REPEAT 2:
            A = A + 4
            A = A + 9
        A = A + 8
        REPEAT 5:
            A = A + 6
            A = A + 9
        A = A + 1
    REPEAT 1:
        A = A + 4
    A = A + 2
    REPEAT 9:
        REPEAT 3:
            A = A + 4
        REPEAT 7:
            A = A + 8
            A = A + 3
        REPEAT 5:
            A = A + 9
        REPEAT 8:
            A = A + 9
            A = A + 8
        REPEAT 4:
            A = A + 7
        A = A + 7
    A = A + 3
A = A + 5
REPEAT 6:
    A = A + 7
REPEAT 7:
    A = A + 2
    A = A + 2
A = A + 1
REPEAT 8:
    REPEAT 1:
        REPEAT 4:
            A = A + 6
            A = A + 6
            A = A + 2
        REPEAT 5:
            A = A + 4
            A = A + 8
            A = A + 4
        REPEAT 1:
            A = A + 5
        REPEAT 7:
            A = A + 8
        REPEAT 6:
            A = A + 4
        A = A + 4
        A = A + 8
        REPEAT 4:
            A = A + 2
        REPEAT 2:
            A = A + 4
        REPEAT 2:
            A = A + 3
        REPEAT 1:
            A = A + 2
        A = A + 8
        REPEAT 2:
            A = A + 7
        REPEAT 8:
            A = A + 6
            A = A + 1
        A = A + 7
    REPEAT 8:
        A = A + 2
    REPEAT 8:
        REPEAT 6:
            A = A + 1
            A = A + 6
        REPEAT 2:
            A = A + 4
            A = A + 1
        A = A + 7
    A = A + 4
REPEAT 4:
    REPEAT 9:
        A = A + 2
    REPEAT 1:
        A = A + 2
    A = A + 5
REPEAT 8:
    REPEAT 6:
        A = A + 3
    REPEAT 4:
        A = A + 1
        A = A + 6
        A = A + 1
    REPEAT 7:
        A = A + 7
        REPEAT 7:
            A = A + 3
            A = A + 9
            A = A + 1
            A = A + 9
        REPEAT 3:
            A = A + 5
        A = A + 5
        A = A + 6
        A = A + 2
    REPEAT 1:
        A = A + 4
    REPEAT 2:
        A = A + 7
    REPEAT 1:
        A = A + 7
        REPEAT 4:
            A = A + 7
        A = A + 2
        REPEAT 5:
            A = A + 9
            A = A + 1
            A = A + 9
            A = A + 5
            A = A + 9
        REPEAT 5:
            A = A + 5
        REPEAT 1:
            A = A + 6
        REPEAT 2:
            A = A + 3
            A = A + 2
            A = A + 6
            A = A + 8
            A = A + 8
            A = A + 7
        A = A + 5
    A = A + 5
REPEAT 2:
    A = A + 1
    A = A + 7
A = A + 3
REPEAT 2:
    A = A + 7
A = A + 1
A = A + 4
REPEAT 1:
    REPEAT 7:
        REPEAT 2:
            A = A + 3
            A = A + 5
            A = A + 2
        A = A + 6
    A = A + 1
A = A + 2
A = A + 4
A = A + 9
REPEAT 1:
    A = A + 8
REPEAT 8:
    REPEAT 4:
        REPEAT 8:
            A = A + 4
        REPEAT 3:
            A = A + 1
            A = A + 8
        REPEAT 7:
            A = A + 8
        REPEAT 7:
            A = A + 7
        A = A + 7
        REPEAT 7:
            A = A + 6
        REPEAT 5:
            A = A + 9
        A = A + 3
        REPEAT 4:
            A = A + 5
        A = A + 5
    A = A + 4
    REPEAT 9:
        REPEAT 3:
            A = A + 4
            A = A + 3
            A = A + 6
        REPEAT 1:
            A = A + 3
            A = A + 3
            A = A + 6
        REPEAT 6:
            A = A + 7
            A = A + 7
            A = A + 5
            A = A + 5
            A = A + 1
            A = A + 2
        A = A + 6
        A = A + 6
    REPEAT 9:
        A = A + 6
    REPEAT 1:
        REPEAT 2:
            A = A + 4
            A = A + 7
        REPEAT 3:
            A = A + 6
        REPEAT 5:
            A = A + 3
        A = A + 6
        REPEAT 9:
            A = A + 3
        A = A + 6
    REPEAT 5:
        A = A + 8
        A = A + 8
        REPEAT 3:
            A = A + 7
            A = A + 9
            A = A + 8
            A = A + 3
        A = A + 3
    A = A + 9
REPEAT 6:
    A = A + 9
A = A + 1
REPEAT 4:
    REPEAT 1:
        A = A + 7
    REPEAT 9:
        A = A + 2
        A = A + 9
    A = A + 1
A = A + 2
A = A + 8
A = A + 7
A = A + 9
A = A + 6
REPEAT 4:
    REPEAT 2:
        A = A + 3
    REPEAT 3:
        A = A + 4
    A = A + 4
REPEAT 6:
    A = A + 6
A = A + 1
A = A + 5
A = A + 8
REPEAT 2:
    A = A + 6
    REPEAT 1:
        REPEAT 2:
            A = A + 2
        REPEAT 3:
            A = A + 1
        REPEAT 1:
            A = A + 8
            A = A + 7
            A = A + 4
            A = A + 2
            A = A + 8
        A = A + 4
    REPEAT 5:
        REPEAT 6:
            A = A + 8
        REPEAT 9:
            A = A + 5
        A = A + 5
    REPEAT 5:
        A = A + 5
    REPEAT 3:
        REPEAT 5:
            A = A + 4
        REPEAT 4:
            A = A + 6
            A = A + 3
        REPEAT 7:
            A = A + 3
            A = A + 3
            A = A + 1
            A = A + 7
            A = A + 7
            A = A + 6
            A = A + 5
            A = A + 5
        A = A + 6
    REPEAT 1:
        A = A + 9
    A = A + 3
    REPEAT 1:
        REPEAT 1:
            A = A + 1
        REPEAT 8:
            A = A + 5
        REPEAT 8:
            A = A + 6
        REPEAT 4:
            A = A + 9
        A = A + 4
    REPEAT 2:
        A = A + 3
        A = A + 7
        REPEAT 5:
            A = A + 7
            A = A + 5
            A = A + 8
        A = A + 7
        A = A + 8
    A = A + 5
    REPEAT 2:
        A = A + 5
    A = A + 7
    A = A + 8
A = A + 5
A = A + 9
REPEAT 2:
    REPEAT 6:
        A = A + 9
        A = A + 1
        A = A + 8
        A = A + 7
        A = A + 1
        A = A + 5
    REPEAT 3:
        A = A + 3
        A = A + 9
        A = A + 7
    REPEAT 3:
        A = A + 9
    A = A + 1
    REPEAT 6:
        A = A + 1
    REPEAT 9:
        REPEAT 7:
            A = A + 3
        REPEAT 5:
            A = A + 5
            A = A + 8
            A = A + 8
            A = A + 1
            A = A + 2
        REPEAT 4:
            A = A + 6
        REPEAT 3:
            A = A + 3
        A = A + 7
    REPEAT 8:
        REPEAT 1:
            A = A + 7
        A = A + 8
        A = A + 3
    A = A + 1
A = A + 2
A = A + 4
A = A + 7
REPEAT 1:
    REPEAT 1:
        REPEAT 1:
            A = A + 4
            A = A + 6
        REPEAT 1:
            A = A + 3
            A = A + 9
            A = A + 6
        REPEAT 9:
            A = A + 1
            A = A + 6
        REPEAT 5:
            A = A + 3
            A = A + 9
        A = A + 5
        A = A + 5
    A = A + 7
    A = A + 2
    REPEAT 2:
        A = A + 7
    A = A + 7
    REPEAT 7:
        REPEAT 4:
            A = A + 6
        A = A + 8
        REPEAT 6:
            A = A + 6
        REPEAT 2:
            A = A + 1
        A = A + 7
        A = A + 6
    A = A + 7
    REPEAT 4:
        REPEAT 7:
            A = A + 1
        REPEAT 2:
            A = A + 2
            A = A + 5
        A = A + 8
    A = A + 2
A = A + 1
A = A + 4
REPEAT 8:
    A = A + 5
A = A + 6
REPEAT 7:
    REPEAT 6:
        REPEAT 9:
            A = A + 7
            A = A + 8
        REPEAT 4:
            A = A + 6
            A = A + 4
            A = A + 3
            A = A + 6
        REPEAT 9:
            A = A + 3
        REPEAT 9:
            A = A + 2
        A = A + 7
    A = A + 5
    A = A + 2
REPEAT 7:
    REPEAT 8:
        REPEAT 6:
            A = A + 4
            A = A + 9
            A = A + 5
            A = A + 3
        A = A + 9
    REPEAT 4:
        REPEAT 1:
            A = A + 6
            A = A + 8
        REPEAT 1:
            A = A + 6
        A = A + 4
        A = A + 6
    REPEAT 3:
        A = A + 7
        REPEAT 3:
            A = A + 4
            A = A + 4
            A = A + 2
        A = A + 3
        A = A + 7
    REPEAT 5:
        A = A + 6
        A = A + 5
    REPEAT 1:
        REPEAT 8:
            A = A + 5
        REPEAT 3:
            A = A + 6
        REPEAT 9:
            A = A + 4
        A = A + 3
    REPEAT 6:
        REPEAT 2:
            A = A + 1
        A = A + 5
    A = A + 2
A = A + 2
A = A + 7
REPEAT 4:
    A = A + 7
A = A + 9
A = A + 2
REPEAT 8:
    A = A + 9
    REPEAT 9:
        REPEAT 2:
            A = A + 3
            A = A + 2
            A = A + 1
            A = A + 5
        REPEAT 9:
            A = A + 1
            A = A + 3
        A = A + 9
        REPEAT 7:
            A = A + 2
        REPEAT 5:
            A = A + 9
            A = A + 3
        REPEAT 2:
            A = A + 4
        REPEAT 8:
            A = A + 9
        REPEAT 5:
            A = A + 5
            A = A + 4
        A = A + 2
    A = A + 4
    REPEAT 6:
        A = A + 2
        REPEAT 5:
            A = A + 7
            A = A + 7
            A = A + 8
            A = A + 3
        REPEAT 8:
            A = A + 2
            A = A + 5
        REPEAT 1:
            A = A + 8
            A = A + 5
            A = A + 1
            A = A + 1
        A = A + 5
        REPEAT 2:
            A = A + 6
        REPEAT 6:
            A = A + 9
            A = A + 2
        A = A + 5
        REPEAT 4:
            A = A + 7
        A = A + 1
        REPEAT 6:
            A = A + 8
        A = A + 4
    REPEAT 3:
        REPEAT 2:
            A = A + 1
            A = A + 5
        REPEAT 2:
            A = A + 7
        REPEAT 9:
            A = A + 6
            A = A + 8
            A = A + 9
        A = A + 5
    REPEAT 9:
        REPEAT 3:
            A = A + 7
            A = A + 7
        A = A + 9
        A = A + 7
        REPEAT 5:
            A = A + 7
            A = A + 2
        A = A + 1
    A = A + 8
    A = A + 3
    A = A + 5
A = A + 1
REPEAT 8:
    A = A + 4
A = A + 2
A = A + 2
A = A + 8
REPEAT 4:
    REPEAT 4:
        A = A + 8
        REPEAT 7:
            A = A + 5
            A = A + 2
        REPEAT 2:
            A = A + 6
        REPEAT 4:
            A = A + 8
            A = A + 6
        A = A + 1
    A = A + 3
A = A + 2
A = A + 7
A = A + 4
REPEAT 8:
    A = A + 2
    A = A + 4
REPEAT 5:
    REPEAT 3:
        REPEAT 6:
            A = A + 8
            A = A + 1
        A = A + 6
    A = A + 5
    A = A + 9
REPEAT 8:
    A = A + 7
REPEAT 6:
    A = A + 4
A = A + 5
REPEAT 3:
    A = A + 1
    REPEAT 1:
        REPEAT 5:
            A = A + 6
        A = A + 2
    REPEAT 9:
        REPEAT 5:
            A = A + 9
            A = A + 3
        REPEAT 9:
            A = A + 9
        A = A + 8
    REPEAT 8:
        REPEAT 5:
            A = A + 9
            A = A + 4
        REPEAT 9:
            A = A + 3
        A = A + 4
    A = A + 5
REPEAT 9:
    REPEAT 7:
        A = A + 5
    REPEAT 3:
        A = A + 7
    REPEAT 9:
        REPEAT 6:
            A = A + 4
        A = A + 6
    REPEAT 5:
        REPEAT 6:
            A = A + 5
            A = A + 3
        A = A + 3
    A = A + 3
    A = A + 5
    REPEAT 7:
        A = A + 5
        REPEAT 2:
            A = A + 5
            A = A + 6
        REPEAT 2:
            A = A + 2
        A = A + 5
    A = A + 3
A = A + 5
A = A + 5
REPEAT 4:
    A = A + 2
    A = A + 1
    REPEAT 9:
        A = A + 9
        A = A + 5
        A = A + 6
        A = A + 2
        A = A + 2
        A = A + 5
    REPEAT 9:
        A = A + 5
    A = A + 4
    REPEAT 4:
        REPEAT 4:
            A = A + 1
            A = A + 2
        REPEAT 6:
            A = A + 9
            A = A + 3
        REPEAT 2:
            A = A + 5
            A = A + 1
            A = A + 1
            A = A + 3
        A = A + 8
        REPEAT 7:
            A = A + 4
        REPEAT 6:
            A = A + 9
        REPEAT 5:
            A = A + 9
            A = A + 8
            A = A + 3
        A = A + 9
        A = A + 4
    A = A + 6
REPEAT 7:
    A = A + 9
REPEAT 9:
    A = A + 4
    A = A + 9
    A = A + 1
    A = A + 3
    REPEAT 5:
        REPEAT 1:
            A = A + 4
            A = A + 4
        REPEAT 8:
            A = A + 9
            A = A + 6
            A = A + 2
        REPEAT 3:
            A = A + 4
            A = A + 4
        REPEAT 3:
            A = A + 5
            A = A + 2
            A = A + 8
            A = A + 3
            A = A + 6
            A = A + 4
            A = A + 9
            A = A + 1
        A = A + 9
        A = A + 5
        A = A + 3
        REPEAT 3:
            A = A + 2
            A = A + 5
            A = A + 8
            A = A + 2
        A = A + 5
    REPEAT 8:
        REPEAT 2:
            A = A + 6
        A = A + 7
    A = A + 6
    A = A + 9
    A = A + 2
REPEAT 2:
    A = A + 3
    REPEAT 8:
        A = A + 7
        A = A + 2
        A = A + 1
        A = A + 4
        A = A + 1
        A = A + 5
    A = A + 2
    A = A + 1
    REPEAT 1:
        A = A + 1
    REPEAT 6:
        A = A + 4
        A = A + 3
    A = A + 3
    REPEAT 5:
        A = A + 3
    REPEAT 6:
        REPEAT 1:
            A = A + 5
            A = A + 7
            A = A + 7
            A = A + 7
        REPEAT 5:
            A = A + 9
        A = A + 7
        REPEAT 5:
            A = A + 9
            A = A + 1
            A = A + 9
        A = A + 8
        REPEAT 1:
            A = A + 2
        REPEAT 5:
            A = A + 8
        REPEAT 3:
            A = A + 2
            A = A + 9
        A = A + 6
        A = A + 3
    REPEAT 5:
        REPEAT 6:
            A = A + 5
            A = A + 5
        REPEAT 4:
            A = A + 5
        A = A + 4
        REPEAT 8:
            A = A + 9
            A = A + 1
        REPEAT 8:
            A = A + 8
            A = A + 1
        A = A + 4
        REPEAT 6:
            A = A + 6
        REPEAT 2:
            A = A + 3
            A = A + 9
            A = A + 6
            A = A + 9
        REPEAT 1:
            A = A + 4
        REPEAT 3:
            A = A + 3
            A = A + 4
            A = A + 2
            A = A + 8
        REPEAT 2:
            A = A + 4
        A = A + 1
        REPEAT 9:
            A = A + 2
        A = A + 9
    A = A + 7
REPEAT 7:
    REPEAT 7:
        REPEAT 5:
            A = A + 7
        REPEAT 5:
            A = A + 1
        A = A + 1
    REPEAT 5:
        A = A + 6
        REPEAT 1:
            A = A + 4
        REPEAT 9:
            A = A + 4
        A = A + 1
    REPEAT 6:
        A = A + 8
        A = A + 5
        REPEAT 1:
            A = A + 4
        REPEAT 5:
            A = A + 8
            A = A + 7
        A = A + 2
    REPEAT 3:
        A = A + 3
    REPEAT 8:
        REPEAT 8:
            A = A + 4
        A = A + 7
        REPEAT 5:
            A = A + 1
        REPEAT 8:
            A = A + 7
            A = A + 8
            A = A + 4
        A = A + 7
        A = A + 6
    A = A + 9
    A = A + 5
REPEAT 3:
    A = A + 5
    REPEAT 9:
        A = A + 1
    A = A + 7
REPEAT 1:
    A = A + 8
A = A + 4
REPEAT 8:
    REPEAT 7:
        A = A + 2
        REPEAT 4:
            A = A + 6
        A = A + 6
    REPEAT 1:
        A = A + 7
    A = A + 1
REPEAT 9:
    REPEAT 5:
        A = A + 6
        A = A + 5
        REPEAT 7:
            A = A + 3
            A = A + 6
        A = A + 8
    REPEAT 2:
        A = A + 7
    A = A + 1
    A = A + 9
    REPEAT 3:
        REPEAT 3:
            A = A + 5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

娃娃酱斯密酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值