C++第13届蓝桥杯省b组习题笔记

news2025/4/25 16:36:40

1.九进制转十进制

九进制正整数 (2022)9转换成十进制等于多少?

第一位乘9的0次方,第二位乘9的1次方,第三位乘9的二次方以此类推

#include <iostream>
using namespace std;


int main()
{
  // 请在此输入您的代码
  int t=2022;
  int res=0;
  int cur=1;
  while(t)
  {
    // res*=10;
    res+=t%10*cur;
    t/=10;
    cur*=9;
  }

  cout<<res<<endl;
  return 0;
}

2. 顺子日期

小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。小明想知道在整个 2022 年份中,一共有多少个顺子日期?

#include <iostream>
#include<cstdio>
#include<algorithm>
#include<string>
using namespace std;

int month[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };


bool check(string s)
{
    for (int i = 0; i + 2 < s.size(); i++)
    {
        if (s[i] + 1 == s[i + 1] && s[i] + 2 == s[i + 2])
            return true;
    }
    return false;
}

int main()
{
    // 请在此输入您的代码
    int cnt = 0;
    for (int i = 20220000; i <= 20230000; i++)
    {
        int y = 2022;
        int m = i / 100 % 100;
        int d = i % 100;


        if (m <= 0 || m > 12)
            continue;
        int day = month[m];

        // if (m == 2)
        //     if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
        //         day++;

        if (d <= 0 || d > day)
            continue;

        int k = i;

        string s;
        s = to_string(k);//将一串数字转化为string类型字符串。stoi将字符串转化为整数数字,stod转化为double类型

        if (check(s))
        {
            // for (auto c : s)
            //     cout << c << "  ";
            cnt++;
            // cout << endl;
        }
    }
    cout << cnt << endl;
    return 0;
}

3.刷题统计

小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 a 道题目, 周六和周日每天做 b 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 n 题?

数据范围很大所以要先计算做题做了几个周,再枚举剩下的天数(开long long)

#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
  // 请在此输入您的代码

  long long a,b,n;
  scanf("%lld%lld%lld",&a,&b,&n);
  long long cur=1;
  long long res=0;
  long long day=0;
  long long week=n/(5*a+2*b);
  n-=week*(5*a+2*b);
  while(res<n)
  {
    if(cur<=5)
    {
      res+=a;
      cur++;
    }
    else if(cur>5)
    {
      res+=b;
      if(cur==7)
      cur=1;
      else
      cur++;
    }
    day++;
  }

  cout<<day+week*7<<endl;
  return 0;
}

4. 修剪灌木

爱丽丝要完成一项修剪灌木的工作。

有 NN 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晩会修剪一棵灌 木, 让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始, 每天向右修剪一棵灌木。当修剪了最右侧的灌木后, 她会调转方向, 下一天开 始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。

灌木每天从早上到傍晩会长高 1 厘米, 而其余时间不会长高。在第一天的 早晨, 所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。

我直接暴力了。可以通过模拟来做

#include <iostream>
#include<cstdio>
using namespace std;

int n;
int h[10010];
int maxh[10010];

void add()
{
  for(int i=1;i<=n;i++)
  h[i]++;
}

void left()
{
    for(int i=1;i<=n;i++)
    {
      maxh[i]=max(maxh[i],h[i]);
      add();
      h[i]=0;//修剪为0
    }
}

void right()
{
    for(int i=n;i>=1;i--)
    {
      maxh[i]=max(maxh[i],h[i]);
      add();
      h[i]=0;//修剪为0
    }
}

int main()
{
  // 请在此输入您的代码
  scanf("%d",&n);

  int cur=1;

  int t=2;
  while(t--)
  {
    left();
    right();
  }

  for(int i=1;i<=n;i++)
  cout<<maxh[i]<<endl;

  return 0;
}

5.统计子矩阵

给定一个 N×M 的矩阵 A, 请你统计有多少个子矩阵 (最小 1×1 最大 N×M)满足子矩阵中所有数的和不超过给定的整数 K ?

解题思路

通过记录列的前缀和,然后枚举矩阵的上界和下界,通过双指针来枚举列

AC代码
#include <iostream>
#include<cstdio>
using namespace std;

int n,m,k;
int A[510][510];
int res[510][510];

int main()
{
  // 请在此输入您的代码
  scanf("%d%d%d",&n,&m,&k);
  for(int i=1;i<=n;i++)
  {
    for(int j=1;j<=m;j++)
    {
      scanf("%d",&A[i][j]);
      res[i][j]=res[i-1][j]+A[i][j];//计算列的前缀和
    }
  }

  // for(int i=1;i<=n;i++)
  // {
  //   for(int j=1;j<=m;j++)
  //   {
  //     cout<<res[i][j]<<" ";
  //   }
  //   cout<<endl;
  // }
  long long cnt=0;
  for(int i=1;i<=n;i++)//枚举第几行
  {
    //枚举下界是第几行
     for(int j=i;j<=n;j++)//
     {
       int sum=0;
       for(int l=1,r=1;r<=m;r++)//枚举
       {
         sum+=res[j][r]-res[i-1][r];//去掉上界以上的列值

         while(sum>k)
         {
           sum-=res[j][l]-res[i-1][l];//不能重复去掉上界的值
            l++;//使矩阵和减少
         }
         cnt+=r-l+1;
       }
     }
  }
  
  cout<<cnt<<endl;
  return 0;
}

6.扫雷

C++:dfs习题四则_c++dfs题目-CSDN博客最后一个题

7. 李白打酒加强版

话说大诗人李白, 一生好饮。幸好他从不开车。

一天, 他提着酒显, 从家里出来, 酒显中有酒 2 斗。他边走边唱:

无事街上走,提显去打酒。 逢店加一倍, 遇花喝一斗。

这一路上, 他一共遇到店 NN 次, 遇到花 MM 次。已知最后一次遇到的是花, 他正好把酒喝光了。

请你计算李白这一路遇到店和花的顺序, 有多少种不同的可能?

注意: 显里没酒 ( 0 斗) 时遇店是合法的, 加倍后还是没酒; 但是没酒时遇 花是不合法的。

解题思路

线性dp 

 AC代码+dfs代码
#include <iostream>
#include<cstdio>
using namespace std;
const long long mod=1000000007;
int n,m;

// long long cnt=0;
// void dfs(int fl,int hs,int sum)//花和店和剩余的酒
// {
//   //1. 还有花,没有酒那以后肯定不合法 2.花没了,还有店也不行。最后遇到的是花
//   if(sum==0&&fl>0||(fl==0&&hs>0))
//   {
//     return;
//   }
//   if(hs==0&&fl==0&&sum==0)//没有店了,没有花了,没有酒了
//   {
//     cnt++;
//     cnt%=mod;
//     return ;
//   }
//   //遇见店
//   if(hs>0)
//   dfs(fl,hs-1,sum*2);
//   //遇见花
//   if(fl>0)
//   dfs(fl-1,hs,sum-1);

//   return;
// }

int f[110][110][110];

int main()
{
  // 请在此输入您的代码
  scanf("%d%d",&n,&m);
  // dfs(m,n,2);
  f[0][0][2]=1;
  for(int i=0;i<=m;i++)//花
  {
      for(int j=0;j<=n;j++)
      {
          for(int k=0;k<=m;k++)//最多是m因为没有酒不能遇见花
          {
              int &v=f[i][j][k];
              if(j&&k%2==0)
              {
                v=(v+f[i][j-1][k/2])%mod;
              }
              if(i)
              v=(v+f[i-1][j][k+1])%mod;
          }
      }
  }
  cout<<f[m-1][n][1];//还剩一个花,一斗酒
    // cout<<cnt<<endl;
  return 0;
}

就到这里啦(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python-leetcode 61.N皇后

题目&#xff1a; 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解…

产教融合|暴雨技术专家执裁江苏省职业院校技能大赛

3月28-30日&#xff0c;由江苏省教育厅、省发改委、省工信厅等15家单位主办的2025年江苏省职业院校技能大赛网络系统管理赛项如期举办。此次赛事吸引了全省52支参赛队伍、156名选手踊跃参与&#xff0c;参赛人数再创新高。 暴雨信息技术专家李明宇作为此赛项的往届省赛冠军&am…

BUUCTF-web刷题篇(6)

15.PHP 知识点&#xff1a; ①__wakeup()//将在反序列化之后立即调用&#xff08;当反序列化时变量个数与实际不符是会绕过&#xff09;我们可以通过一个cve来绕过:CVE-2016-7124。将Object中表示数量的字段改成比实际字段大的值即可绕过wakeup函数。条件&#xff1a;PHP5<…

周总结aa

上周学习了Java中有关字符串的内容&#xff0c;与其有关的类和方法 学习了static表示静态的相关方法和类的使用。 学习了继承(extends) 多态&#xff08;有继承关系&#xff0c;有父类引用指向子类对象&#xff09; 有关包的知识&#xff0c;final关键字的使用&#xff0c;及有…

31天Python入门——第17天:初识面向对象

你好&#xff0c;我是安然无虞。 文章目录 面向对象编程1. 什么是面向对象2. 类(class)3. 类的实例关于self 4. 对象的初始化5. __str__6. 类之间的关系继承关系组合关系 7. 补充练习 面向对象编程 1. 什么是面向对象 面向对象编程是一种编程思想,它将现实世界的概念和关系映…

计算机视觉准备八股中

一边记录一边看&#xff0c;这段实习跑路之前运行完3DGAN&#xff0c;弄完润了&#xff0c;现在开始记忆八股 1.CLIP模型的主要创新点&#xff1a; 图像和文本两种不同模态数据之间的深度融合、对比学习、自监督学习 2.等效步长是每一步操作步长的乘积 3.卷积层计算输入输出…

【C语言】文件操作(2)

一、文件的随机读写 在前面我们学习了文件的顺序读写的函数&#xff0c;那么当我们要读取某个指定位置的内容的时候&#xff0c;是否只能顺序的读取到这个内容&#xff1f;还有在对文件进行输入的时候&#xff0c;需要对指定的位置进行写入&#xff0c;那么此时应该怎么办呢&a…

CCCC天梯赛L1-094 剪切粘贴

题目链接&#xff1a; 字符串函数&#xff1a; 1、截取字符串&#xff1a; //起始位置为3,结束位置为5string s "aabcdefg";//下标从0开始 [从开始位置,结束位置]string sub s.substr(3,3);//输出cde, 有返回值string//并且原字符串不改变&#xff0c; s"aab…

某地81栋危房自动化监测试点项目

1. 项目简介 房屋进入老龄化阶段后&#xff0c;结构安全风险越来越大。近10年来&#xff0c;每年都会产生房屋倒塌人员伤亡的重大安全事故。调研分析显示&#xff0c;老旧房屋结构安全风险管理的有效路径为&#xff0c;通过“人防技防”的组合模式&#xff0c;对房屋安全风险进…

远程装个Jupyter-AI协作笔记本,Jupyter容器镜像版本怎么选?安装部署教程

通过Docker下载Jupyter镜像部署&#xff0c;输入jupyter会发现 有几个版本&#xff0c;不知道怎么选&#xff1f;这几个版本有什么差别&#xff1f; 常见版本有&#xff1a; jupyter/base-notebookjupyter/minimal-notebookjupyter/scipy-notebookjupyter/datascience-notebo…

山东大学软件学院项目创新实训开发日志(4)之中医知识问答数据存储、功能结构、用户界面初步设计

目录 数据库设计&#xff1a; 功能设计&#xff1a; 用户界面: 数据库设计&#xff1a; --对话表 (1个对话包含多条消息) CREATE TABLE conversations ( conv_id VARCHAR(36) PRIMARY KEY, -- 对话ID user_id VARCHAR(36) NOT NULL, -- 所属用户 title VARCHAR(100), -- 对话…

20.思科交换机二层链路聚合的详细配置命令解析

思科交换机二层链路聚合的详细配置命令解析 一、PAgP协议的配置SW1的配置SW2的配置二、LACP标准协议三、配置聚合组的带宽和速率四、确保所有接口的双工模式和速率一致五、故障排除和监控在Cisco设备上配置链路聚合(也称为端口通道或EtherChannel)可以增强网络连接的带宽和可…

【多线程】单例模式和阻塞队列

目录 一.单例模式 1. 饿汉模式 2. 懒汉模式 二.阻塞队列 1. 阻塞队列的概念 2. BlockingQueue接口 3.生产者-消费者模型 4.模拟生产者-消费者模型 一.单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是一种常用的软件设计模式&#xff0c;其核心思想是确保…

Qt5.14.2+Cmake使用mingw64位编译opencv4.5成功图文教程

​ 一、下载安装相关编译环境软件 1.1 Python3.8&#xff1a;安装路径:C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32 安装包&#xff1a;python3.8.exe 1.2 QT5.14.2&#xff1a;安装路径:C:\Qt\Qt5.14.2 1.3 opencv4.5&#xff1a;解压路径D:\o…

Mamba4D阅读

CVPR 2025 创新 基于transformer的4D主干由于其二次复杂度而通常存在较大的计算成本&#xff0c;特别是对于长视频序列。 开发了帧内空间Mamba模块&#xff0c;建立时空相关性。 GPU占用和速度很有优势。 代码还没发。 Pipeline 输入点云序列&#xff0c;根据超参数构建点管…

手工排查后门木马的常用姿势

声明&#xff01;本文章所有的工具分享仅仅只是供大家学习交流为主&#xff0c;切勿用于非法用途&#xff0c;如有任何触犯法律的行为&#xff0c;均与本人及团队无关&#xff01;&#xff01;&#xff01; 1. 检查异常文件 &#xff08;1&#xff09;查找最近修改的文件 # 查…

算法导论(动态规划)——简单多状态

算法思路&#xff08;17.16&#xff09; 状态表示&#xff1a; 在处理线性动态规划问题时&#xff0c;我们可以通过“经验 题目要求”来定义状态表示。通常有两种选择&#xff1a; 以某个位置为结尾的情况&#xff1b;以某个位置为起点的情况。 本题中&#xff0c;我们选择更常…

LeetCode 438. 找到字符串中所有字母的异位词

438. 找到字符串中所有字母的异位词 题目描述 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 输入输出示例及数据范围 思路 这道题的思路其实很简单&#xff0c;就是一个滑动窗口的裸题&a…

java详细笔记总结持续完善

一.Java开发环境的搭建 1. 单位换算 1TB 1024GB 1GB 1024MB 1MB 1024KB 1KB 1024Byte (字节) 1Byte 8 bit(位) 注意&#xff1a;一个字节占8位 2. DOS命令 DOS : Disk Operation System 磁盘操作系统 即用于操作本地磁盘的系统 命令操作符号盘符切换命令盘符名:查看当前文…

wsl2的centos7安装jdk17、maven

JDK安装 查询系统中的jdk rpm -qa | grep java按照查询的结果&#xff0c;删除对应版本 yum -y remove java-1.7.0-openjdk*检查是否删除 java -version 下载JDK17 JDK17&#xff0c;下载之后存到wsl目录下&#xff08;看你自己&#xff09;然后一键安装 sudo rpm -ivh jd…