当前位置: 首页 > article >正文

蓝桥真题讲解

第一题

题目链接

0商品库存管理 - 蓝桥云课

题目解析

代码原理

暴力解法

代码编写

暴力解法代码

#include<iostream>

#include<bits/stdc++.h>

using namespace std;

const int N = 300030;

int optation[N][2];

int res[N];

int main()

{

  ios::sync_with_stdio(0);

  cin.tie(0);

  cout.tie(0);

  int n = 0, m = 0;

  cin >> n >> m;

  for(int i = 0; i < m; i++)

  {

    cin >> optation[i][0] >> optation[i][1];

  }

  for(int i = 0; i < m; i++)

  {

    for(int j = optation[i][0]; j <= optation[i][1]; j++)

    {

      res[j]++;

    }

  }

  for(int i = 0; i < m; i++)

  {

    int ans = 0;

    for(int j = 1; j <= n; j++)

    {

      int tmp = res[j];

      if(j >= optation[i][0] && j <= optation[i][1]) tmp--;

      if(tmp == 0) ans++;

    }

    cout << ans << endl;

  }

  return 0;

}

结果图

所以,各位小伙伴看到自己的结果只有30%的时候不要惊讶,如果是比赛,在比赛中能用这个方法解决这道题就已经很不错了。当然既然博主已经在目录中做了小标题了,自然还有其他更好的方法

本题总结

暴力破解,对于刚接触这些算法题的小伙伴会有一种现象,题看懂了,但是无从下手,那么暴力破解就是一个很好的解法,那么暴力破解是如何操作呢,首先根据题目要求,去模拟一遍这个过程,这里主要是理解题意,题意懂了之后,再结合所学去解题即可,这里的所学如循环判断语句这些等等,有点麻烦的是需要做题者将每一个环节都要考虑的清清楚楚,当然对于初学者总是有点难度的,毕竟万事开头难嘛。

从这题开始我们进入蓝桥填空题的练习

第二题

题目链接

0隔行变色 - 蓝桥云课

题目解析

代码原理

代码编写

#include <iostream>

using namespace std;

int main()

{

  // 请在此输入您的代码

  int ret = 0;

  for(int i = 21; i <= 50; i++)

  {

    if(i % 2 != 0)

     ret++;

  }

  cout << ret;

  return 0;

}

第三题

题目链接

0立方尾不变 - 蓝桥云课

题目解析

代码原理

题目很简单,因此没啥好讲的,相信各位小伙伴都是有实力的。

代码编写

#include <iostream>

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

int main()

{

  // 请在此输入您的代码

  int ret = 0;

  for(ll i = 1; i < 10000; i++)

  {

    if(i < 10) 

    {

      if(i * i * i % 10 == i) ret++;

    }

    else if(i < 100) 

    {

      if(i * i * i % 100 == i) ret++;

    }

        else if(i < 1000) 

    {

      if(i * i * i % 1000 == i) ret++;

    }

        else if(i < 10000) 

    {

      if(i * i * i % 10000 == i) ret++;

    }

  }

  cout << ret;

  return 0;

}

第四题

题目链接

0猴子分香蕉 - 蓝桥云课

题目解析

代码原理

代码编写

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    ll n = 100000;
    for(int i = 6; i <= n; i++)
    {
        int tmp = i;
        if((tmp - 1) % 5 != 0) continue;
        tmp -= 1;
        tmp = tmp - tmp / 5;
        if(tmp <= 0 || (tmp - 2) % 5 != 0) continue;
        tmp -= 2;
        tmp = tmp - tmp / 5;
        if(tmp <= 0 || (tmp - 3) % 5 != 0) continue;
        tmp -= 3;
        tmp = tmp - tmp / 5;
        if(tmp <= 0 || (tmp - 4) % 5 != 0) continue;
        tmp -= 4;
        tmp = tmp - tmp / 5;
        if(tmp <= 0 || tmp % 5 != 0) continue;
        cout << i << endl;
        break;
    }
    return 0;
 } 

第五题

题目链接

0矩形切割 - 蓝桥云课

题目解析

代码原理

代码编写

#include <iostream>

using namespace std;

int main()

{

  // 请在此输入您的代码

  // cout << 21;

  int n = 2019, m = 324, sum = 0;

  while(n % m != 0)

  {

    sum += n / m;

    int d = m;

    m = n % m;

    n = d;

  }

  sum += n / m;

  cout << sum << endl; 

  return 0;

}

第六题

题目链接

0年号字串 - 蓝桥云课

题目解析

代码原理

首先是26进制,因为有26个字母。然后根据每次取26的余数去匹配26个字母,注意最后string类型变量中的字符串是逆序的,记得按升序输出

代码编写

#include<iostream>

#include<bits/stdc++.h>

using namespace std;

int main()

{

  string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

  int n = 2019;

  string ans;

  while(n)

  {

    int tmp = n % 26;

    n /= 26;

    ans += s[tmp - 1];

  }

 for(int i=ans.size()-1;i>=0;i--)cout<<ans[i];

  return 0;

}

本篇蓝桥真题讲解就先到这里,我们下期文章再见!


http://www.kler.cn/a/582499.html

相关文章:

  • Android 列表页面终极封装:SmartRefreshLayout + BRVAH 实现下拉刷新和加载更多
  • 无广告记账助手:个人小企业财务管理
  • 02.Kubernetes 集群部署
  • UE5.4分层渲染设置
  • 神经网络机器学习中说的过拟合是什么意思
  • Spring Boot + InfluxDB 实现高效数据存储与查询
  • 【实战-解决方案】Webpack 打包后很多js方法报错:not defined
  • 关于MCP SSE 服务器的工作原理
  • Kotlin D3
  • Vite项目中vite.config.js中为什么只能使用process.env,无法使用import.meta.env?
  • 使用expect工具实现远程批量修改服务器密码
  • Mac 如何在idea集成SVN
  • CSS整理学习合集(2)
  • 从异步讲到回调函数
  • 开启AI开发新时代——全解析Dify开源LLM应用开发平台
  • 大模型叙事下的百度智能云:比创新更重要的,是创新的扩散
  • NineData:解锁多云与混合云环境下的智能数据管理
  • (三)Dart 变量
  • 后端 - java - - 重写与重载的区别
  • mock的定义和使用场景