蓝桥杯刷题|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;
 }
相关文章
|
6月前
|
测试技术
蓝桥杯真题|02普及-真题
蓝桥杯真题|02普及-真题
|
算法 前端开发 Java
【备战十四届蓝桥杯 | 开篇】如何高效备战蓝桥杯
【备战十四届蓝桥杯 | 开篇】如何高效备战蓝桥杯
141 0
离散数学常见面试问题总结,含答案
离散数学常见面试问题总结,含答案
|
算法 程序员
【算法集训暑期刷题营】8.10题---位运算
【算法集训暑期刷题营】8.10题---位运算
【算法集训暑期刷题营】8.10题---位运算
|
Python
【蓝桥杯国赛真题】备战24天 Python
【蓝桥杯国赛真题】备战24天 Python
128 0
【蓝桥杯国赛真题】备战24天 Python
|
算法 前端开发 搜索推荐
一个比肩leetcode的面试刷题网站
最近收集了不少好玩接地气的工具,分享给大家。 说到面试刷题,我应该是比较有经验的,去年初本人正好换工作,也为面试做了很多准备,其中一个环节就是要复习大量的面试题,但是题目太分散,搜索引擎都要用烂了,后来那个月小度的股价涨了不少。
265 0
一个比肩leetcode的面试刷题网站
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十七题-实现斐波那契数列
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十七题-实现斐波那契数列
84 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十七题-实现斐波那契数列