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

蓝桥真题讲解

本篇文章继续给大家讲解蓝桥真题

第一题

题目链接

0封闭图形个数 - 蓝桥云课

题目解析

代码原理

代码编写

#include <iostream>

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const ll max_len = 200010;

struct node

{

  ll val;

  ll zero;

}a[max_len];

bool compare(node a, node b)

{

  if(a.zero != b.zero)

  {

    return a.zero < b.zero;

  }

  return a.val < b.val;

}

int main()

{

  // 请在此输入您的代码

  ios::sync_with_stdio(0);

  cin.tie(0);

  cout.tie(0);

  map<int,int> mp;

  mp[0] = mp[4] = mp[6] = mp[9] = 1, mp[8] = 2, mp[1] = mp[3] = mp[5] = mp[7] = mp[2] = 0;

  ll n = 0;

  cin >> n;

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

  {

    cin >> a[i].val;

  }

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

  {

    ll x = a[i].val, sum = 0;

    while(x)

    {

      sum += mp[x % 10];

      x /= 10;

    }

    a[i].zero = sum;

  }

  sort(a + 1, a + 1 + n, compare);

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

  {

     cout << a[i].val << " ";

  }

  return 0;

}

本题总结

思路梳理:1.从题目中获取并列举出条件2.根据给出的例子去理解题目意思

代码总结:结构体代码思维、排序容器sort、容器map的创建与使用

第二题

题目链接

0回文数组 - 蓝桥云课

题目解析

代码原理

代码编写

#include<iostream>

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const ll max_len = 100010;

ll a[max_len];

ll dif[max_len];

int main()

{

  ios::sync_with_stdio(0);

  cin.tie(0);

  cout.tie(0);

  ll n = 0;

  ll ret = 0;

  cin >> n;

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

  {

    cin >> a[i];

  }

  for(ll i = 1; i <= n / 2; i++)

  {

     dif[i] = a[i] - a[n - i + 1];

  }

  for(ll i = 1; i <= n / 2; i++)

  {

      ret += abs(dif[i]);

      if(dif[i] < 0 && dif[i + 1] < 0) dif[i + 1] -= max(dif[i], dif[i + 1]);

      else if(dif[i] > 0 && dif[i + 1] > 0) dif[i + 1] -= min(dif[i], dif[i + 1]);

  }

  cout << ret;

  return 0;

}

本题总结

知识点:abs()函数是取绝对值

思路梳理:先读题,提取出题目条件后,进行画图,分情况讨论:分别是由大往小变和由小往大变

贪心策略:能一起加的时候绝不单独加

第三题

题目链接

0求和 - 蓝桥云课

题目解析

代码原理

因为这个数会很大,有可能超过int甚至是long long,普通的循环有可能行不通,因此我们要用上高中学的知识等差数列求和公式

公式:(首项 + 尾项)* 项数 / 2

由于这题的代码很简单相信各位小伙伴都是有实力的,因此博主也就不展示代码了。若真有问题,呃,私信我好吧。

本题总结

公式:(首项 + 尾项)* 项数 / 2

本篇文章的内容就先到这里,我们下期文章再见!

 

 

http://www.dtcms.com/a/34787.html

相关文章:

  • 微服务面试题:分布式事务和服务监控
  • 从启动说起到单片机点灯发生了什么上——库层次
  • 第十五:to 的两种写法
  • Docker搭建redis集群
  • Oracle创建视图提示:ORA-01031 权限不足
  • (论文)使ConvNeXt模型适应语音数据集上的音频分类
  • Rust 中的内部可变性与 `RefCell<T>`
  • 选择排序:简单高效的选择
  • Java集合框架设计模式面试题
  • Linux系统管理(十七)——配置英伟达驱动、Cuda、cudnn、Conda、Pytorch、Pycharm等Python深度学习环境
  • Docker:基于自制openjdk8镜像 or 官方openjdk8镜像,制作tomcat镜像
  • Hadoop--Secondary NameNode工作机制,作用及与NameNode HA的区别
  • 云原生周刊:云原生和 AI
  • Django ORM 的常用字段类型、外键关联的跨表引用技巧,以及 `_` 和 `__` 的使用场景
  • Kubernetes资源管理实战:从理论到落地的完整指南
  • 结束,起点。有感于2024博客之星评选
  • 飞天侠:用 aioredis 加速你的 Redis 操作
  • 《AI大模型趣味实战》第10集:开发一个基于Mermaid的AI绘图网站
  • SSTI知识点汇总
  • Mysql进阶篇
  • DeepSeek本地搭建 和 Android
  • 【Mysql:数据库的基础操作】
  • Automa 浏览器自动化编排 实现自动化浏览器操作
  • sql的索引与性能优化相关
  • MySQL数据库——索引潜规则(回表查询、索引覆盖、索引下推)
  • Python 错误和异常处理
  • 【股票数据API接口36】如何获取股票当天逐笔大单交易数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
  • 实现 INFINI Console 与 GitHub 的单点登录集成:一站式身份验证解决方案
  • 【杂谈】-强化学习遇见链式思维:将大型语言模型转变为自主推理代理
  • WebXR教学 03 项目1 旋转彩色方块