当前位置:   article > 正文

2020年7月5日第十一届蓝桥杯省赛真题C/C++ A组第一场 编程题_小明有n颗石子,按顺序摆成一排,他准备用胶水将这些石子粘在一起。每颗石子有自己

小明有n颗石子,按顺序摆成一排,他准备用胶水将这些石子粘在一起。每颗石子有自己

第六题:解码
题目描述

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

在这串字母中,有很多连续的是重复的。

小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 + 出现次数的形式。

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

对于这个例子:HHHellllloo,小明可以简写成 H3el5o2。

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

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

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

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

样例输入 H3el5o2

样例输出 HHHellllloo

数据范围 对于所有评测用例,字符串由大小写英文字母和数字组成,长度不超过100。 请注意原来的串长度可能超过 100。

代码

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

int main()
{
   
	string s,ans="";
	cin>>s;
	char pre;
	for(int i=0; i<s.length(); i++){
   
		if(s[i]>='2'&&s[i]<='9'){
   
			int temp = s[i]-'0' -1;
			for(int j=0; j<temp; j++){
   
				ans+=pre;
			}
		}else{
   
			ans += s[i];
			pre = s[i];
		}
	}
	cout<< ans <<endl;
	
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

第七题:走方格
问题描述

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

这些点的编号就像二维数组的编号一样。

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

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

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

问有多少种方案。

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

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

样例输入1: 3 4

样例输出1 2

样例输入2: 6 6

样例输出2 0

数据范围 1 ≤ n ≤ 30, 1 ≤ m ≤ 30。

思路

dp[i][j]:表示从(1,1)到(n,m)的方案数
  • 1

代码

#include <iostream>
using namespace std;
const int N = 35;
int dp[N][N]={
   0};//初始化
int main()
{
   
	int n,m;
	cin >> n >> m;
	for(int i=1; i<=n; i++){
   
		for(int j=1; j<=m; j++){
   
			if(i%2==0 && j%2==0) continue;//都是偶数就跳过
			else if(i==1||j==1)dp[i][j] = 1;
			//初始值,如果在第一行或第一列都只能一种方案
			//因为在第一行只能向右走,在第一列只能向下走
			else{
   
				dp[i]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/48104
推荐阅读
相关标签
  

闽ICP备14008679号