2019年天梯赛全国总决赛题集

L1-1 PTA使我精神焕发 (5分)

在这里插入图片描述

#include <iostream>

int main(void)
{
	cout << "PTA shi3 wo3 jing1 shen2 huan4 fa1 !" << endl;
  	return 0;
}

L1-2 6翻了 (15分)

在这里插入图片描述

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

int main(void)
{
	string s;
	int cnt = 0;
	getline(cin, s);
	for (int i = 0; i < s.size(); i++){
		if (s[i] == '6')
			cnt++;
		if (s[i] != '6' || i == s.size() - 1){//如果当前不是6或者是最后一个字符 
			if (cnt <= 3){
				for (int j = 0; j < cnt; j++)
					cout << "6";
			}
			else if (cnt > 3 && cnt <= 9)
				cout << "9";
			else if (cnt > 9)
				cout << "27";
			cnt = 0;
			if (i != s.size() - 1)//当前不是最后一个字符 
				cout << s[i];
			else if (i == s.size() - 1 && s[i] != '6')//当前是最后一个字符并且不是6 
				cout << s[i];
		}
	}
	cout << endl;
	return 0;
}

L1-3 敲笨钟 (20分)

在这里插入图片描述

L1-4 心理阴影面积 (5分)

在这里插入图片描述
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;

int main(void)
{
	int x, y;
	cin >> x >> y;
	cout << 50 * (x - y) << endl;
	return 0;
}

L1-5 新胖子公式 (10分)

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;

int main(void)
{
	double w, h, BMI;
	cin >> w >> h;
	BMI = w / (h * h);
	printf("%.1lf\n", BMI);
	if (BMI > 25) 
		printf("PANG\n");
	else 
		printf("Hai Xing\n");
	return 0;
}

L1-6 幸运彩票 (15分)

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;

int main(void)
{
	int n;
	char num[7];
	cin >> n;
	while (n--){
		cin >> num;
		if (num[0] + num[1] + num[2] == num[3] + num[4] + num[5]) 
			cout << "You are lucky!" << endl;
		else 
			cout << "Wish you good luck." << endl;
	}
	return 0;
}

L1-7 吃鱼还是吃肉 (10分)

在这里插入图片描述
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;

int main(void)
{
	int n, sex, h, w;
	cin >> n;
	while (n--){
		cin >> sex >> h >> w;
		if (sex == 1){
			if (h == 130) 
				cout << "wan mei! ";
			else if (h > 130) 
				cout << "ni li hai! ";
			else 
				cout << "duo chi yu! ";
			if (w == 27) 
				cout << "wan mei!" << endl;
			else if (w > 27) 
				cout << "shao chi rou!" << endl;
			else 
				cout << "duo chi rou!" << endl;
		}
		else{
			if (h == 129) 
				cout << "wan mei! ";
			else if (h > 129) 
				cout << "ni li hai! ";
			else 
				cout << "duo chi yu! ";
			if (w == 25) 
				cout << "wan mei!" << endl;
			else if (w > 25) 
				cout << "shao chi rou!" << endl;
			else 
				cout << "duo chi rou!" << endl;
		}
	}
	return 0;
}

L2-4 彩虹瓶 (25分)

在这里插入图片描述
在这里插入图片描述

#include <iostream>
#include <stack>
using namespace std;

stack<int> stk;

int main(void)
{
	int n, m, k, t;
	bool flag;
	cin >> n >> m >> k;
	while (k--){
		flag = true;
		int idx = 1;
		for (int i = 0; i < n; i++){//装填时 
			cin >> t;
			if (t == idx)
				idx++;
			else if (stk.size() != 0 && stk.top() == idx){
				stk.pop();
				idx++;
			}
			else{
				stk.push(t);
				if (stk.size() > m)
					flag = false;
			}
			//每次发货后,检查栈顶元素是否能装填 
			while (stk.size() != 0 && stk.top() == idx){
				stk.pop();
				idx++; 
			}
		}
		while (idx != n + 1){//装填完之后,取出栈中的元素 
			if (stk.top() == idx){
				stk.pop();
				idx++;
			}
			else{
				flag = false;
				break;
			}
		}
		if (flag)
			cout << "YES" << endl;
		else
			cout << "NO" << endl;
		while (stk.size() != 0)//清空栈 
			stk.pop();
	}
	return 0;
}
发布了174 篇原创文章 · 获赞 20 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43772166/article/details/104095218