蓝桥杯刷题|01普及-真题

简介: 蓝桥杯刷题|01普及-真题



[蓝桥杯 2013 省 B] 翻硬币 题解

题目背景

小明正在玩一个“翻硬币”的游戏。

题目描述

桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零),比如可能情形是 **oo***oooo,如果同时翻转左边的两个硬币,则变为 oooo***oooo。现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?

输入格式

两行等长字符串,分别表示初始状态和要达到的目标状态,每行长度小于 10001000。

数据保证一定存在至少一种方案可以从初始状态和要达到的目标状态。

输出格式

一个整数,表示最小操作步数。

输入输出样例

输入 #1

**********

o****o****

输出 #1  5

输入 #2

*o**o***o***

*o***o**o***

输出 #2   1

说明/提示

source:蓝桥杯 2013 省 B 组 H 题

代码及思路

#include<iostream>
#include<string>
using namespace std;
int main()
{
  string a,b;
  cin>>a>>b;
  int num=0;
  for(int i=0;i<a.size();i++)
  {
    if(a[i]==b[i])continue;
    else{
      a[i]=(a[i]=='o')?'*':'o';
      a[i+1]=(a[i+1]=='o')?'*':'o';
      num++; 
    }
  }
  cout<<num;
  
  return 0;
}

[蓝桥杯 2015 省 B] 移动距离

题目描述

X 星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为 1,2,3,⋯。

当排满一行时,从下一行相邻的楼往反方向排号。

比如:当小区排号宽度为 6 时,开始情形如下:

1  2  3  4  5  6
12 11 10 9  8  7
13 14 15 .....

我们的问题是:已知了两个楼号 m 和 n,需要求出它们之间的最短移动距离。(不能斜线方向移动)

输入格式

输入为 33个整数 w,m,n,空格分开,都在 1 到 10000 范围内。

w 为排号宽度,m,n 为待计算的楼号。

输出格式

要求输出一个整数,表示 m 与 n 两楼间最短移动距离。

输入输出样例

输入 #1 6 8 2

输出 #1  4

输入 #2  4 7 20

输出 #2 5

说明/提示

时限 1 秒, 256M。

蓝桥杯 2015 年省赛 B 组 H 题。

代码及思路

#include<iostream>
using namespace std;
int main()
{
  int w,m,n;
  int num=0;
  cin>>w>>m>>n;
  //找到m和n 的倍数
  int tpm=0,tpn=0;
  //m和n的余数
  int rem=0,ren=0;
  if(m>n)
  {
    int temp=m;
    m=n;
    n=temp;
  }
  //倍数 
  tpm=m/w;tpn=n/w;
  //余数 
  rem=m%w;ren=n%w;
  int a=tpm,b=tpn;
  if(rem==0)a--;
  if(ren==0)b--; 
  //横着的距离 
    //距离记得取绝对值
  num=((b-a)>0)?(b-a):(a-b);
  //令倍数成为他的横坐标,余数的变换成为纵坐标
  if(tpn%2==1&&ren>0)ren=w-ren;
  if(tpm%2==1&&rem>0)rem=w-rem;
  if(tpn%2==0&&ren==0)ren=w-1;
  if(tpm%2==0&&rem==0)rem=w-1;
  if(tpn%2==0)ren=ren-1;
  if(tpm%2==0)rem=rem-1;
  //竖着的距离  
  num+=((ren-rem)>0)?(ren-rem):(rem-ren);
  cout<<num;
  return 0;
}

[蓝桥杯 2021 国 BC] 大写

题目描述

给定一个只包含大写字母和小写字母的字符串,请将其中所有的小写字母转换成大写字母后将字符串输出。

输入格式

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

输出格式

输出转换成大写后的字符串。

输入输出样例

输入 #1 LanQiao

输出 #1  LANQIAO

说明/提示

对于所有评测用例, 字符串的长度不超过 100100。

蓝桥杯 2021 国赛 B 组 E 题(C 组 E 题)。

代码及思路

#include<stdio.h>
 #include<string.h>
 int main()
 {
  char arr[1000];
  gets(arr);
  int n=strlen(arr);
  
  for(int i=0;i<n;i++)
  {
    if(arr[i]<='Z'&&arr[i]>='A')printf("%c",arr[i]);
        //大写字母和小写字母相差32,小写字母大
    if(arr[i]<='z'&&arr[i]>='a')printf("%c",arr[i]-32);
  }
  
  return 0;
 }
相关文章
|
存储 测试技术
(笔试)华为2021秋招面试真题!(内含详细解题思路)
<p>  前言:</p> <p>  文章内容主要介绍了华为2021秋招笔试题(小结),小编觉得挺不错的,现在特意在此分享给大家,也给大家做个参考。(部分代码,用图片的方式呈现出来,方便各位收藏与很好的观看)</p> <p>  内容如下:</p> <p>  一、全量字符集与已占用字符集</p> <p>  输入描述:</p>
988 0
|
7月前
|
测试技术
蓝桥杯真题|02普及-真题
蓝桥杯真题|02普及-真题
|
7月前
|
测试技术
蓝桥杯刷题|03入门真题
蓝桥杯刷题|03入门真题
|
7月前
|
测试技术
蓝桥杯刷题|02入门真题
蓝桥杯刷题|02入门真题
|
7月前
|
测试技术
蓝桥杯刷题|01入门真题
蓝桥杯刷题|01入门真题
|
存储 数据采集 数据格式
【蓝桥杯嵌入式】蓝桥杯第十三届省赛程序真题,真题分析与代码讲解
【蓝桥杯嵌入式】蓝桥杯第十三届省赛程序真题,真题分析与代码讲解
763 0
【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题,真题分析与代码讲解
【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题,真题分析与代码讲解
392 0
【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题,真题分析与代码讲解