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

C++蓝桥真题讲解

本篇文章和大家一起来试试一些简单的蓝桥真题

注意:本篇文章将全程使用devc++和蓝桥官网,如果有小伙伴找不到devc++安装包的可以本篇文章中下载。

赛前必知点

1.正式比赛时,先从蓝桥官网下载题目文档,然后用devc++进行编译,对于习惯了vs、VS coed的编译器的小伙伴需要提前去适应devc++这个编译器,当然博主也会在本篇文章中放置devc++的下载链接

2.蓝桥杯的题目一共分为两种题型:填空题和编程题,填空题提交答案即可,编程题需要提交完整代码

3.正式比赛是没有测试用例给你测试,你只能用题目中给的用例去测试,因此,比赛中你要在紧张中保持冷静,要保持思路清晰

4.devc++不会和vs一样有明显的错误提示,因此在代码运行时,要学会看懂devc++报错的那一栏

5.编写代码时,肯定会有小失误,因此,我们要静下心来走读代码。

当然啦,博主也会在这系列的文章结束前,通过刷真题带大家总结出如何避免一些小问题的出现

devc++安装包链接

通过网盘分享的文件:lanqiaobei
链接: https://pan.baidu.com/s/1QC0ngsMiN9M1P0Ezsk--Rg?pwd=6666 提取码: 6666

第一题

题目解析

通过读题,我们可以知道

题目要求:求最大正方形的边长

知识转换:   正方形的面积 = 边长 * 边长

代码编写

#include<iostream>

#include<math.h>

using namespace std;

int main()

{

  long long two = 7385137888721, one = 10470245;

  int max_len = pow(4 * two + one,0.5);//这里要是看不太懂的小伙伴看一看下面的这串代码

  cout << max_len - 1 << endl;

  return 0;

}

注意这个for循环可以省略,因此这个代码并不是很好,但仅供参考。

第二题

题目解析

首先点击log.txt下载这个文件,然后打开这个文件,博主建议大家用记事本打开这个文件

因为在记事本的左下角可以看到它的总行数,以便我们后续使用。

那么这一长串的数据我们是不是看到会感觉很懵,没关系,我们先读题。

重点:

1.对于连续的 KK 次正确敲击,如果任意连续的两次敲击间间隔时间都小于等于 1s1s,那么我们称这是一次 KK 连击

2.每条记录有三个字段,依次为正确的敲击字符、小蓝打出的字符、 打出字符的时间对应的毫秒时间戳。

代码原理

代码编写

#include<iostream>
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const ll max_len = 2010;
char a[max_len], b[max_len];
ll t[max_len];
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    ll count = 0, ret = 0;
    for(ll i = 1; i <= 2000; i++)
    {
        cin >> a[i] >> b[i] >> t[i];
    }
    for(ll i = 2; i <= 2000; i++)
    {
        if(a[i] == b[i] && t[i]- t[i - 1] <= 1000)
        {
            count++;
            ret = max(ret,count);    
        }
        else if(a[i] == b[i] && t[i] - t[i - 1] > 1000)
           count = 1;
        else
        {
            count = 0;
        }
    }
    cout << ret;

    return 0;
 }

第三题

题目解析

重点:

1.诗意数字:连续的数字相加

2.要删除的是非连续的数字相加的数,也就是缺乏诗意的数字

代码原理

代码编写

#include<iostream>
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const ll max_len = 200010;
ll a[max_len];

bool check(ll x)
{
     for(ll i = 0; pow(2,i) < pow(10,16); i++)
     {
         if(x == pow(2,i))
             return true;
     }
     return false;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    ll n = 0,count = 0;
    cin >> n;
    for(ll i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    for(ll i = 1; i <= n; i++)
    {
        if(check(a[i]))//输出非诗意数字
        {
            count++;
        }
    }
    cout << count;
    return 0;
}

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

记得一键三联哦!!!

http://www.lryc.cn/news/524790.html

相关文章:

  • 【21】Word:德国旅游业务❗
  • 如何分辨ddos攻击和cc攻击?
  • enum EPOLL_EVENTS详解
  • 阿里前端开发规范
  • 从函数式编程到响应式编程:现代开发中的范式转变
  • Django学习笔记(启动项目)-03
  • 量变引起质变
  • NewStar CTF week1 web wp
  • 李沐vscode配置+github管理+FFmpeg视频搬运+百度API添加翻译字幕
  • 深度学习中Batch Normalization(BN)原理、作用浅析
  • C语言常用字符串处理函数
  • 文件上传漏洞详解
  • 关于linux的ld.so.conf.d
  • pytest执行报错:found no collectors
  • 如何实现网页不用刷新也能更新
  • c#调用c++的dll,字符串指针参数问题
  • HTML5 新表单属性详解
  • JAVA 使用反射比较对象属性的变化,记录修改日志。使用注解【策略模式】,来进行不同属性枚举值到中英文描述的切换,支持前端国际化。
  • Docker入门学习
  • 吴恩达深度学习——神经网络介绍
  • STM32之CubeMX新建工程操作(十八)
  • Postgresql源码(140)理解PG的编译流程(make、Makefile、Makefile.global.in)
  • logback日志自定义占位符
  • Vue平台开发三——项目管理页面
  • 用于牙科的多任务视频增强
  • 【Node.js]
  • 【Elasticsearch】腾讯云安装Elasticsearch
  • 【网络协议】ACL(访问控制列表)第一部分
  • 2025.1.20——一、[RCTF2015]EasySQL1 二次注入|报错注入|代码审计
  • Spring Boot 整合 Knife4j:打造更优雅的 API 文档