蓝桥杯真题31日冲刺国一 | 每日题解报告 第十七天

简介: 大家好,我是泡泡,今天题不难,大家加油!

一、距离和


题目链接:距离和~~~~~~~~~~~~~


题目要求:


两个字母之间的距离定义为它们在字母表中位置的距离。例如 A 和 C 的距离为 2,L 和 Q 的距离为 5。


对于一个字符串,我们称字符串中两两字符之间的距离之和为字符串的内部距离。


例如:ZOO 的内部距离为 22,其中 Z 和 O 的距离为 11。


请问,LANQIAO 的内部距离是多少?


解题思路:


暴力签到,搞两个循环,每次让两个字母相减,记得加abs不然有负数。


#include<bits/stdc++.h> 
using namespace std;
char s[7] = {'L','A','N','Q','I','A','O'};
int main()
{
  int num = 0;
  int len = strlen(s);
  for(int i=0;i
  {
    for(int j=i+1;j
    {
      num += abs(s[i] - s[j]);
    }
  }
  cout<<num;
  return 0;
}


二、扩散


题目链接:扩 !! 散 !!


题目要求:


小蓝在一张无限大的特殊画布上作画。


这张画布可以看成一个方格图,每个格子可以用一个二维的整数坐标表示。


小蓝在画布上首先点了一下几个点:(0,0),(2020,11),(11,14),(2000,2000)。


只有这几个格子上有黑色,其它位置都是白色的。


每过一分钟,黑色就会扩散一点。具体的,如果一个格子里面是黑色,它就会扩散到上、下、左、右四个相邻的格子中,使得这四个格子也变成黑色(如果原来就是黑色,则还是黑色)。


请问,经过 2020 分钟后,画布上有多少个格子是黑色的。


解题思路:


这是一道 bfs哦,坐标可能都是负数,所以向右,向上平移一下,这样的话相对位置不会变化,然后bfs即可!!!!


#include<bits/stdc++.h>
using namespace std;
bool a[10000][10000];
int dir[4][2]={0,1,0,-1,1,0,-1,0};
long long ans;
struct node{
  int x,y,step;
};
void bfs() 
{
  queueq;
  a[0+3000][0+3000]=1;
  a[2020+3000][11+3000]=1;
  a[11+3000][14+3000]=1;
  a[2000+3000][2000+3000]=1;
  q.push({0+3000,0+3000,0});
  q.push({2020+3000,11+3000,0});
  q.push({11+3000,14+3000,0});
  q.push({2000+3000,2000+3000,0});
  ans=4;
  while(q.size())
  {
  node temp=q.front();
  q.pop();
  if(temp.step==2020)
    continue;
  for(int i=0;i<4;i++)
  {
    int xx=temp.x+dir[i][0];
    int yy=temp.y+dir[i][1];
    if(!a[xx][yy])
    {
    ans++;
    a[xx][yy]=1;
    q.push({xx,yy,temp.step+1});
    }
  }
  }
}
int main()
{
  bfs();
  cout<<ans;
  return 0;
}


三、错误票据


题目链接:超级简单的 错误票据


题目要求;


某涉密单位下发了某种票据,并要在年终全部收回。


每张票据有唯一的 ID 号。全年所有票据的 ID 号是连续的,但 ID 的开始数码是随机选定的。


因为工作人员疏忽,在录入 ID 号的时候发生了一处错误,造成了某个 ID 断号,另外一个 ID 重号。


你的任务是通过编程,找出断号的 ID 和重号的 ID 。


假设断号不可能发生在最大和最小号。


解题思路:


吊题,一开始我用哈希表做的,结果错了,后面发现直接排序相减就可以了,因为数字是相连的如果相减大于1说明断号了,如果前后相等说明连号了,吊题不难!!!


#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
int a[N];
int main()
{
    int n;
    cin >> n;
    int cnt = 0;
    while(scanf("%d",&a[cnt++]) != EOF);
    sort(a, a+cnt);
    int ans1, ans2;
    for(int i = 1; i < cnt; i++)
    {
        if(a[i] - a[i-1] > 1)
        {
          ans1 = a[i-1] + 1;
        } 
        if(a[i] == a[i-1])
        {
          ans2 = a[i];
        }
    }
    cout << ans1 << ' ' << ans2 << endl;
    return 0;
}


总结:


昨天有事情今天补上啦,一起加油!


目录
相关文章
|
存储
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
103 1
|
测试技术
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
142 0
|
人工智能 测试技术 BI
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
108 0
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-填空题
126 0
【蓝桥杯冲刺】日期类专题特训
【蓝桥杯冲刺】日期类专题特训
45 0
|
人工智能 测试技术
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
107 0
|
机器学习/深度学习 存储 测试技术
蓝桥杯冲刺-倒数第八天-省赛题
蓝桥杯冲刺-倒数第八天-省赛题
114 0
|
机器学习/深度学习 Python
【蓝桥杯真题】16天冲刺 Python
【蓝桥杯真题】16天冲刺 Python
216 0
【蓝桥杯真题】16天冲刺 Python
|
算法 Python 容器
【蓝桥杯真题】18天Python组冲刺 心得总结
【蓝桥杯真题】18天Python组冲刺 心得总结
181 0
【蓝桥杯真题】18天Python组冲刺 心得总结
蓝桥杯倒数七天冲刺国一之每日复习第六天
大家好,我是泡泡,今天是复习第六天!今天有事,稍微水一下
105 0