2025/3/8 第 27 场 蓝桥入门赛 题解

1. 38红包【算法赛】

签到题:  算倍数就行了

#include <bits/stdc++.h>
using namespace std;
int main()
{
  int ans=0;
  for(int i=1;i<=2025;i++){
      if(i % 3 == 0)ans++;
      else if(i % 8 == 0)ans++;
      else if(i % 38 == 0)ans++;
  }
  cout<<ans<<endl;
  return 0;
}

2. 祝福语【算法赛】

字典序: 两个字符串  , 挨个比较字符 , 如果一个字符大则该字符串字典序大  , 如果一个字符串比较完了,则长度长的字典序大。

思路:aaa最小   ,  所以统计连续的最长a字串  , 再多输出1个a(避免是字串)

#include <bits/stdc++.h>
using namespace std;
int main()
{
  // 请在此输入您的代码
  string s;
  cin>>s;

  int n=s.size();
  int num=0;  //连续a最大长度
  int ans=0;
  for(int i=0;i<n;i++){
      if(s[i] == 'a' && i == n-1)
          ans = max(ans , num+1);
      if(s[i] == 'a')num++;
      else 
      {
          ans = max(ans , num);
          num = 0;
      }
  }

    for(int i=0;i<ans+1;i++){
        cout<<'a';
    }
  
  return 0;
}

3. 社区服务【算法赛】

思路  :  前缀数组统计,i左边最近1位置的下标

               后缀数组统计,i右边最近1位置的下标

                再遍历每个点,算最小距离

#include <bits/stdc++.h>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int n;
  cin>>n;

  string s;
  cin>>s;

  vector<int> pre(n,-1);
  int pos=-1;
  for(int i=0;i<n;i++){
      pre[i] = pos;
      if(s[i] == '1'){
          pos = i;
      }
  }

  vector<int> back(n,-1);
  pos=-1;
  for(int i=n-1;i>=0;i--){
      back[i] = pos;
      if(s[i] == '1'){
          pos = i;
      }
  }

//   for(int i=0;i<n;i++){
//       cout<<pre[i]<<" ";
//   }
//   cout<<endl;
//    for(int i=0;i<n;i++){
//       cout<<back[i]<<" ";
//   }

  for(int i=0;i<n;i++){
      if(s[i] == '0'){
          int t1=INT_MAX,t2=INT_MAX;
          if(pre[i] != -1){
              t1 = i - pre[i];
          }
          if(back[i] != -1){
              t2 = back[i] - i;
          }

          if(t1==INT_MAX && t2==INT_MAX)cout<<-1<<" ";
          else
          cout<<min(t1 , t2)<<" ";
      }
  }
  return 0;
}

4. 表演队【算法赛】

思路: 滑动窗口(k个数) , 排序(越靠近越好) , 前缀和用于计算窗口滑动时的值转换

        1.求第一个窗口的值 : 

                a1 a2 a3 a4  (假设k=4)    怎么求两两差值呢?

        规律: a2 - a1        a3 - a1       a4 - a1      a1减3次      a2加1次

                    a3 - a2        a4 - a2                        a2减2次      a3加2次

                    a4 - a3                                            a3减1次      a4加3次

        一个数a[i]        减(后面几个数)个  , 加(前面几个数)个   a[i]

          2.求滑动窗口  看注释

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main()
{
  // 请在此输入您的代码
  int n,k;
  cin>>n>>k;

  vector<ll> a(n+1,0);
  for(int i=1;i<=n;i++){
      cin>>a[i];
  }
  
  //排序
  sort(a.begin()+1,a.end());

  //前缀和
  vector<ll> pre(n+1,0);
  for(int i=1;i<=n;i++){
      pre[i] = pre[i-1] + a[i];
  }

//   for(int i=1;i<=n;i++){
//       cout<<pre[i]<<" ";
//   }

  //滑动窗口

  //第一个窗口值
  ll ans = 0;  //上一个窗口值
  ll res = 0;  //答案

  for(int i=1;i<=k;i++){
      ans +=  (i-1) * a[i] - (k-i) * a[i];
  }
  res = ans;

//   cout<<ans;
  
  /*
        a b c d e
        sum - ((b - a) + (c - a)) + ((d - b) + (d - c));
      == sum  -(b + c) + 2*a +  2*d - (b + c)
      == sum -2*(b+c) + 2*a + 2*d
  */

  for(int i=2;i<=n-k+1;i++){
       ans = ans - 2 * (pre[i+k-2] - pre[i-1]) + (k-1)*a[i-1] + (k-1)*a[i+k-1];
       res = min(ans , res);
  }

  cout<<res<<endl;

  return 0;
}

5. 花束搭配【算法赛】

思路  Ai + Aj > Bi + Bj      ->     Ai - Bi > - (Aj - Bj)

二分查找即可,但要注意以下几点:

sub[i] <= 0      :   不用考虑自己大于 - sub[i]          

sub[i] > 0        :   考虑自己大于 - sub[i]       答案-1

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() {
    int n;
    cin >> n;

    vector<int> a(n);
    vector<int> b(n);

    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for (int i = 0; i < n; i++) {
        cin >> b[i];
    }

    vector<int> sub(n);
    for (int i = 0; i < n; i++) {
        sub[i] = a[i] - b[i];
    }

    sort(sub.begin(), sub.end());

    ll ans = 0;
    for (int i = 0; i < n; i++) {
        auto it = upper_bound(sub.begin(), sub.end(), -sub[i]);
        if (it != sub.end()) {
            int pos = it - sub.begin();
            // n - pos 个
            int y = n - pos;
            if (sub[i] > 0) y--;  //换成负的包括正数自己
            ans = ans + y;
        }
    }

    cout << ans << endl;

    return 0;
}

6. 妇女唇膏【算法赛】

思路 : 找二进制都是0的位  , 因为这样  相加  和   异或  该位都一样变成1      

#include <bits/stdc++.h>
using namespace std;

int main()
{
  // 请在此输入您的代码

  int n;
  cin>>n;

  vector<int> nums(n,0);
  for(int i=0;i<n;i++){
      cin>>nums[i];
  }

  vector<bool> flag(32,true);
  for(int i=0;i<n;i++){
      int t=nums[i];
      int pos=0;

      while(t){
          if(t%2 == 1)
            flag[pos] = false;
          t/=2;
          pos++;
      }
  }

  for(int i=0;i<32;i++){
      if(flag[i])
      {
          cout<<(1<<i)<<endl;   //不能pow,pow返回浮点数  , 会有精度问题
          break;
      }
  }


//   for(int i=1;i<=10000;i++){
//       bool flag=true;
//       for(int j=0;j<n;j++){
//           if(nums[j] + i != (nums[j] ^ i)){
//               flag=false;
//               break;
//           }
//       }
//       if(flag ){
//           cout<<i<<endl;
//           break;
//       }
//   }


  return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/983689.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《白帽子讲 Web 安全》之深入同源策略(万字详解)

目录 引言 一、同源策略基础认知 &#xff08;一&#xff09;定义 &#xff08;二&#xff09;作用 &#xff08;三&#xff09;作用机制详解 二、同源策略的分类 &#xff08;一&#xff09;域名同源策略 &#xff08;二&#xff09;协议同源策略 &#xff08;三&…

基于SpringBoot的商城管理系统(源码+部署教程)

运行环境 数据库&#xff1a;MySql 编译器&#xff1a;Intellij IDEA 前端运行环境&#xff1a;node.js v12.13.0 JAVA版本&#xff1a;JDK 1.8 主要功能 基于Springboot的商城管理系统包含管理端和用户端两个部分&#xff0c;主要功能有&#xff1a; 管理端 首页商品列…

FFmpeg-chapter7和chapter8-使用 FFmpeg 解码视频(原理篇和实站篇)

解码流程如下图 流程&#xff1a;首先&#xff0c;通过 avcodec_alloc_context3(nullptr) 分配一个 AVCodecContext 结构体&#xff0c;然后使用 avcodec_parameters_to_context 将参数复制到上下文中&#xff0c;接着通过 avcodec_find_decoder 查找指定的解码器&#xff0c;并…

【银河麒麟高级服务器操作系统实例】虚拟机桥接网络问题分析及处理

更多银河麒麟操作系统产品及技术讨论&#xff0c;欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer…

10 【HarmonyOS NEXT】 仿uv-ui组件开发之Avatar头像组件开发教程(一)

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; 目录 第一篇&#xff1a;Avatar 组件基础概念与设计1. 组件概述2. 接口设计2.1 形状类型定义2.2 尺寸类型定义2.3 组件属性接口 3. 设计原则4. 使用…

C++20 DR11:数组 `new` 可以推导出数组大小

文章目录 背景与动机C20 的改进示例代码编译器支持总结 在 C20 中&#xff0c;DR11 提案&#xff08;P1009R2&#xff09;引入了一项重要的语言特性改进&#xff1a;数组 new 表达式可以自动推导数组大小。这一改进极大地简化了动态数组的创建过程&#xff0c;使代码更加简洁易…

STM32-I2C通信外设

目录 一&#xff1a;I2C外设简介 二&#xff1a;I2C外设数据收发 三&#xff1a;I2C的复用端口 四&#xff1a;主机发送和接收 五&#xff1a;硬件I2C读写MPU6050 相关函数&#xff1a; 1.I2C_ GenerateSTART 2.I2C_ GenerateSTOP 3.I2C_ AcknowledgeConfig 4.I2C…

OpenManus:开源版Manus的快速安装及使用「喂饭教程」

OpenManus&#xff1a;开源版Manus的快速安装及使用「喂饭教程」 OpenManus是什么&#xff1f;OpenManus的核心理念1. 安装2. 配置2.1 线上模型2.2 本地模型 3. 运行项目常见问题&#xff1a;如何设置项目执行的Steps&#xff1f; OpenManus是什么&#xff1f; OpenManus是由 …

专业工具,提供多种磁盘分区方案

随着时间的推移&#xff0c;电脑的磁盘空间往往会越来越紧张&#xff0c;许多人都经历过磁盘空间不足的困扰。虽然通过清理垃圾文件可以获得一定的改善&#xff0c;但随着文件和软件的增多&#xff0c;磁盘空间仍然可能显得捉襟见肘。在这种情况下&#xff0c;将其他磁盘的闲置…

【小技巧】百度网盘清除重复文件详细步骤

百度网盘内存空间清理——清除重复文件 1.点击左下角【工具】 2.选择文件管理 3.点击垃圾文件清理&#xff0c;选择扫描重复文件 4.根据需要进行重复文件清理或进行垃圾视频扫描、空文件夹扫描等清理操作 5.一键清理需要svip会员&#xff0c;但是我们可以根据重复文件检查结…

用数据唤醒深度好眠,时序数据库 TDengine 助力安提思脑科学研究

在智能医疗与脑科学快速发展的今天&#xff0c;高效的数据处理能力已成为突破创新的关键。安提思专注于睡眠监测与神经调控&#xff0c;基于人工智能和边缘计算&#xff0c;实现从生理体征监测、智能干预到效果评估的闭环。面对海量生理数据的存储与实时计算需求&#xff0c;安…

运行OpenManus项目(使用Conda)

部署本项目需要具备一定的基础&#xff1a;Linux基础、需要安装好Anaconda/Miniforge&#xff08;Python可以不装好&#xff0c;直接新建虚拟环境的时候装好即可&#xff09;&#xff0c;如果不装Anaconda或者Miniforge&#xff0c;只装过Python&#xff0c;需要确保Python是3.…

upload-labs文件上传

第一关 上传一个1.jpg的文件&#xff0c;在里面写好一句webshell 保留一个数据包&#xff0c;将其中截获的1.jpg改为1.php后重新发送 可以看到&#xff0c;已经成功上传 第二关 写一个webshell如图&#xff0c;为2.php 第二关在过滤tpye的属性&#xff0c;在上传2.php后使用b…

【微知】Centos如何迁移到Anolis系统的失败记录?(yum -y install centos2anolis、centos2anolis.py)

背景 本文记录如何从centos 8迁移到anolis系统。 详细步骤 下载迁移repo wget https://mirrors.openanolis.cn/anolis/migration/anolis-migration.repo -O /etc/yum.repos.d/anolis-migration.repo下载centos2anolis工具包 yum -y install centos2anolis安装额外工具包 …

Docker 安装 Nacos 2.1.1(单机版)

一、拉取镜像 docker pull nacos/nacos-server:v2.1.1 二、新建数据库 官网上下载 对应版本的 nacos zip 包&#xff0c;在 nacos\conf 目录下有 mysql脚本&#xff1a; 新建一个数据库 nacos_config&#xff0c;在数据库中依次执行 nacos-mysql.sql、1.4.0-ipv6_support-up…

大模型开发(五):P-Tuning项目——新零售决策评价系统(下)

P-Tuning项目——新零售决策评价系统&#xff08;下&#xff09; 0 前言1 P-Tuning原理2 数据处理 0 前言 上篇文章我们介绍了使用PET方式微调BERT模型&#xff0c;PET属于提示词微调的一种&#xff0c;另一种比较常见的提示词微调是P-Tuning&#xff0c;我们今天在相同的项目…

.net 与 Pythonnet库的使用心得

python脚本使用.net 准备工作 安装pythonnet库 pip install pythonnet 查看是否安装了clr库 pip list | findstr clr 如果报错 module clr has no attribute AddReference 卸载clr pip uninstall clr 测试脚本 import clr clr.AddReference(System.Windows.Forms) from Syste…

Geo3D建筑材质切换+屋顶纹理

一、简介 基于Threejs开发封装建筑渲染管线&#xff0c;利用简单二维建筑矢量面轮廓程序化生成3D建筑&#xff0c;支持材质一键切换&#xff0c;支持多样化建筑墙面材质和屋顶材质&#xff0c;支持建筑透明&#xff0c;支持地形高程适配&#xff0c;支持按空间范围裁剪挖洞等。…

Windows 系统 Docker Desktop 入门教程:从零开始掌握容器化技术

文章目录 前言一、Docker 简介二、Docker Desktop 安装2.1 系统要求2.2 安装步骤 三、Docker 基本概念四、Docker 常用命令五、实战&#xff1a;运行你的第一个容器5.1 拉取并运行 Nginx 容器5.2 查看容器日志5.3 停止并删除容器 六、总结 前言 随着云计算和微服务架构的普及&…

以太网口的协议与电路波形

一直有一个疑问&#xff0c;MCU通过SPI协议与一个以太网芯片通信&#xff0c;这个芯片直接将其转化为了以太网所需的电平和协议标准&#xff0c;这其中发生了什么&#xff0c;开发者有需要关注哪些方面呢&#xff1f; 先看以太网模块的设计&#xff1a; 可以看到也是MCU和以太…