第十六届蓝桥杯大赛软件赛省赛 C/C++ 大学B组 [京津冀]

2025年第十六届蓝桥杯省赛C/C++大学B组 个人题解 也是写了写部分题解,朱波也是狠狠水了个省二┭┮﹏┭┮,毕竟许多算法知识没怎么学。 阅读详情
AI摘要

本文分享第十六届蓝桥杯大赛软件赛省赛C/C++大学B组(京津冀)题目,包括密密摆放、脉冲强度之和、25之和等多道题,给出题目描述、解题思路及部分代码示例,因官方未公布数据,代码仅供参考。

由于官方没有公布题目的数据, 所以代码仅供参考

1. 密密摆放

题目链接:P12337 [蓝桥杯 2025 省 AB/Python B 第二场] 密密摆放 - 洛谷

题目描述

小蓝有一个大箱子,内部的长宽高分别是 200、250、240(单位:毫米),他要用这个大箱子来放一些同样大小的小盒子,小盒子的外部长宽高分别是 30、40、50(单位:毫米)。小盒子允许从各个方向旋转(包括可以平放和倒放)。

请问小蓝最多可以在一个大箱子里面放多少个小盒子。

 代码如下:

#include <bits/stdc++.h>
using namespace std;
int solve(int i,int j, int k){
    return i*j*k;
}
int main() {
    int ans=solve(200,250,240)/solve(30,40,50);
    cout<<ans<<endl;
    return 0;
}

2.  脉冲强度之和

题目描述
在蓝桥电子工坊,工程师小蓝正在设计一款智能脉冲生成器,用于驱动一种新型设备。该设备的运行依赖于特定的脉冲强度,用正整数 p 表示,其必须满足以下三个条件:

可由连续 10 个正整数之和组成:即存在一个正整数 k,使得脉冲强度 p=k+(k+1)+(k+2)+⋯+(k+9)。
各个数位上的数字都相同:例如 1111、22222、333333 等。
数值不超过 20255202:即 1≤p≤20255202。
通过计算所有符合条件的脉冲强度之和,小蓝能够优化设备运行模式。对此,请帮助他计算这一总和。

解题思路: 

1.  p=k+(k+1)+(k+2)+⋯+(k+9)  => p=(k+k+9)*10/2=10*k+45

2. 解 p=10*k+45, 看k有没有解, 就能验证条件1了

3. 接着验证p的每一位是否相等

4. 按顺序枚举p, 把所有符合条件的p累加起来

代码如下: 

#include<bits/stdc++.h>
using namespace std;
const int maxP=20255202;
bool solve(long long p){
    string s=to_string(p); bool f=false;
    for(char c:s){
        if(c!=s[0]){
            f=true;
            break;
        }
    }
    return f;
}
int main(){
    long long ans=0;
    for(long long k=1;;k++){
        long long p=10*k+45; 
        if (p > maxP) break;
        if(!solve(p)) ans+=p;
         
    }
    cout<<ans<<endl;
    return 0;
}

 3. 25 之和

题目描述

小蓝最近对求和很着迷,给定一个正整数 n,他想求从 n 开始的连续 25 个整数的和,即 n+(n+1)+(n+2)+⋯+(n+24),请帮帮他吧。

输入格式

输入一行包含一个正整数 n。

代码如下: 

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n; cin>>n;
    long long ans =25*(n+(n+24))/2; 
    cout<<ans<<endl;
    return 0;
}

4.  旗帜

小蓝要画一个 LANQIAO 图形,并把这个图形做成一个旗帜。图形的形状为一个 h×w 的矩形,其中 h 表示图形的高,w 表示图形的宽。当 h=5,w=10 时,图形如下所示:

LANQIAOLAN

ANQIAOLANQ

NQIAOLANQI

QIAOLANQIA

IAOLANQIAO

图形的规律是:第一行用 LANQIAO 重复填入,第二行开始,每行向左移动一个字符,用 LANQIAO 重复填入。

小蓝需要把图形中的每个字母都剪出来,以粘贴到旗帜上,他想知道,给定图形的高和宽,图形中有多少个 A。

 代码如下:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int h, w;
    cin >> h >> w;
    string s = "LANQIAO";
    int ans = 0;
    for (int i = 0; i < h; i++){
        for (int j = 0; j < w; j++){
            if (s[(i + j) % 7] == 'A'){
                ans++;
            }
        }
    }
    cout << ans<<endl;
    return 0;
}

5. 数列差分

题目描述:

小蓝有两个长度均为 n 的数列 A={a1​,a2​,⋯,an​} 和 B={b1​,b2​,⋯,bn​},将两个数列作差定义为 C=A−B={c1​=a1​−b1​,c2​=a2​−b2​,⋯,cn​=an​−bn​}。小蓝将对数列 B 进行若干次操作,每次操作可以将数列 B 中的任意一个数更改为任意一个整数。在进行完所有操作后,小蓝可以按任意顺序将数列 B 重排,之后再计算数列 C。小蓝想知道,最少操作多少次可以使得数列 C 中的所有数都为正整数。 

 代码如下:

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n; cin>>n; vector<long long> a(n); vector<long long> b(n);
    for(int i=0;i<n;i++) cin>>a[i];
    for(int i=0;i<n;i++) cin>>b[i];
    sort(a.begin(),a.end()); sort(b.begin(),b.end());
    int i=0; int j=0,ans=0;
    while(i<n&&j<n){
        if(a[i]>b[j]){
            i++;
            j++;
            ans++;
        }else{
            i++;
        }
    }
    cout<<(n-ans)<<endl;
    return 0;
}

6. 树上寻宝

 小蓝正在一棵含有 n 个结点的树的根结点 1 上,他准备在这棵树上寻宝。结点 i 上有一个物品,价值为 wi​。然而,小蓝每次寻宝只能从根节点出发走不超过 k 步,每步只能选择走 1 条边或者 2 条边,之后会自动拾取最终停留的结点上的物品并被传送回根结点。请求出小蓝最终能获得的物品的总价值。

输入格式

输入的第一行包含两个正整数 n,k,用一个空格分隔。

第二行包含 n 个正整数 w1​,w2​,⋯,wn​,相邻整数之间使用一个空格分隔。

接下来 n−1 行,每行包含两个正整数 ui​,vi​,用一个空格分隔,表示结点 ui​ 和结点 vi​ 之间有一条边。

输出格式

输出一行包含一个整数表示答案。

 解题思路:bfs, 定义d[i]: 节点i到根节点的边数距离, 每步选择的时候, 能走2就不会走1

⌈d[i]/2⌉<=k, d[i]<=2*k

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    long long k;
    cin >> n >> k;
    vector<long long> w(n+1);
    for (int i = 1; i <= n; i++) {
        cin >> w[i];
    }
    vector<vector<int>> grap(n+1);
    for (int i = 0; i < n-1; i++) {
        int u, v;
        cin >> u >> v;
        grap[u].push_back(v);
        grap[v].push_back(u);
    }
    vector<int> d(n+1, -1);
    stack<int> st;
    d[1] = 0;
    st.push(1);
    while (!st.empty()) {
        int u = st.top(); st.pop();
        for (int v : grap[u]) {
            if (d[v] == -1) {
                d[v] = d[u] + 1;
                st.push(v);
            }
        }
    }
    long long ans = 0;
    long long maxD = 2 * k;
    for (int i = 1; i <= n; i++) {
        if (d[i] != -1 && d[i] <= maxD) {
            ans += w[i];
        }
    }
    cout << ans << endl;
    return 0;
}

 7. 破解信息

 在遥远的未来,星际旅行已经成为常态。宇航员小蓝在一次探险任务中,意外发现了一个古老的太空遗迹。遗迹中存放着一个数据存储器,里面记录着一段加密的信息。经过初步分析,小蓝发现这段信息可以被表示为一个字符串 S,而解密的关键,在于找出 S 中字典序最大的回文子序列。

  • 子序列:指从原字符串中抽取若干个字符(可以不连续),按照它们在原字符串中的相对顺序排列所形成的新序列。例如,对于字符串 abc,其子序列包括 a、b、c、ab、ac、bc 和 abc。
  • 字典序:指字符串按照字典中的排序规则比较大小的方式。对于两个字符串,从左到右逐字符比较,先出现较大字符的字符串字典序更大;若比较到某个字符串结束仍未找到不同的字符,则较短的字符串字典序较小。例如,abc < abd,而 ab < abc。

现在,请你从字符串 S 中,找出字典序最大的回文子序列,帮助小蓝解开这段来自星际文明的信息。

输入格式

输入一行包含一个字符串 S,表示加密的信息。

输出格式

输出一行包含一个字符串,表示 S 中字典序最大的回文子序列

解题思路:统计字符串中字典序最大的字符, 然后统计其出现次数。

不管是奇数次和偶数次都是回文的。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    cin >> s;
    char a=*max_element(s.begin(),s.end()); 
    int count=0;
    for(char c:s){
        if(c==a) count++;
    } 
    string ans;
    for(int i=0;i<count;i++){
        ans+=a;
    }
    cout<<ans<<endl;
    return 0;
}

 8.翻转硬币

题目描述

给定 n 行 m 列共 n×m 个硬币,对于任意一个硬币,我们将其价值视为与其相邻(指上、下、左、右相邻)的硬币中与其正反相同的硬币数的平方。

你可以进行任意次操作,每次可以选择任意一行并将该行的硬币全部翻转。

求所有硬币的价值之和最大可能是多少。

输入格式

输入的第一行包含两个正整数 n,m,用一个空格分隔。

接下来 n 行,每行包含 m 个 0 或 1,表示给定的 n×m 个硬币。

输出格式

输出一行包含一个整数表示答案。

 解题思路:这道题是一道DP题, 但是无所谓啊,我们直接写暴力(注:追求前7题满分,最后一题直接打个暴力),欺骗自己AK了

#include <bits/stdc++.h>
using namespace std;
const int dx[4] = {-1, 1, 0, 0};
const int dy[4] = {0, 0, -1, 1};
int main(){
    int n, m;
    cin >> n >> m;
    vector<vector<int>> a(n, vector<int>(m));
    for(int i = 0; i < n; i++){
        string s;
        cin >> s;               
        for(int j = 0; j < m; j++){
            a[i][j] = s[j] - '0';
        }
    }
    long long ans = 0;
    int maxNum = 1 << n;
    for(int k = 0; k < maxNum; k++){
        int g[20][20];
        for(int i = 0; i < n; i++){
            bool f = (k >> i) & 1;
            for(int j = 0; j < m; j++){
                g[i][j] = a[i][j] ^ (f ? 1 : 0);
            }
        }
        long long total = 0;
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                int count = 0;
                for(int d = 0; d < 4; d++){
                    int ni = i + dx[d];
                    int nj = j + dy[d];
                    if(ni >= 0 && ni < n && nj >= 0 && nj < m){
                        if(g[ni][nj] == g[i][j]) {
                            count++;
                        }
                    }
                }
                total += (long long)count * count;
            }
        }
        ans = max(ans, total);
    }
    cout << ans << endl;
    return 0;
}

感谢大家的点赞和关注,你们的支持是我创作的动力!

吐槽:难道是上次出题太难了, 这次就....

 

 

2022年蓝桥杯:第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾,文末附真题链接) 目录第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾)试题 A: 九进制转十进制试题 B: 顺子日期试题 C: 刷题统计试题 D: 修剪灌木试题 E: X 进制减法试题 F: 统计子矩阵试题 G: 积木画试题 H: 扫雷试题 I: 李白打酒加强版试题 J: 砍竹子 第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾) 试题 A: 九进制转十进制 代码: 1478 试题 B: 顺子日期 个人理解: 由于题可知在20220101 ~ 20221231中,存在的连续的3个数字有四种情 阅读详情

相关推荐

第十六届蓝桥杯PythonA组京津冀试题

链接: https://pan.baidu.com/s/1lUgAZCzybzoT8e6qJZ3qOQ?pwd=1234 提取码: 1234。通过网盘分享的文件:第十六届蓝桥杯大赛软件赛省赛第二场_PA.pdf。

weixin_74134898的博客 317

2022蓝桥杯冲刺(历年真题剖析,含省赛、国赛)

为了帮助兄弟们更好准备蓝桥杯比赛,我特意选取了蓝桥往年真题中许多能体现出蓝桥经典题型的题目,有需要的兄弟们可以收藏一下

IT邦德 1万+

2019年第十届蓝桥杯C/C++ 省赛B组原题

2019 年第十届蓝桥杯C/C++ 省赛B组原题,适用于赛后复习。

蓝桥杯单片机备战——第十一届省赛真题解析

烧录代码试试效果,我们发现在设置的时候根本看不到上下限的变化,原因是我们在设置参数时,还是显示的Tmax,Tmin而不是Tmax_New,Tmin_New。先了解了大体要求,是不是感觉也不是很难嘛,我们现在需要做的就是先实现大体框架,在逐一每个具体分支功能。同上面一样的,定义一个bit标志位,然后翻转就行,一个状态对应一个参数。简单·,直接定义一个bit标志位,初始状态为0,按键按下翻转此标志位,此标志位为0则显示参数界面,为1则显示设置参数界面!首先我们要确保按键已经切换到了独立按键模式,不然美分哦!

qq_64346054的博客 2986

2018年蓝桥杯 C语言B组试题

2018-04-01 2018年蓝桥杯个人赛-省赛 C语言B组全部试题(1-10)

2017年蓝桥杯省赛C语言B组真题

2017年蓝桥杯省赛C语言B组真题

【2025】16届蓝桥杯 Java 组全题详解(省赛真题 + 思路 + 代码)

本文整理了2025年第16届蓝桥杯Java组省赛的全部题解,包含8道题目。内容涵盖基础填空题如立方体摆放(试题A)和数字特征判断(试题B),编程题包括连续数求和(试题C)、矩阵字符统计(试题D)、差分数组应用(试题E)等。难题部分涉及基因序列匹配(试题F)、栈内元素乘积最大化(试题G)和循环异或解密(试题H)。题解提供了问题描述、解题思路和优化代码实现,特别注重算法效率(如差分优化将时间复杂度从O(mn)降至O(n+m))。所有代码均采用标准Main类命名,符合竞赛规范。整体竞赛强调基础语法、算法思维和规律

qq_51572290的博客 3523

第七届蓝桥杯省赛B组试题

第七届蓝桥杯省赛B组试题,想参加蓝桥杯的同学可以试试手

第十六届蓝桥杯省赛c++ 第二场 (京津冀) b组个人题解

锐评:蓝桥杯选择了最稳妥的题,这样就没有假题了。

璃的小站 1607

(Linux)DHCP 超级作用域和中继代理(超难受做了超久)

DHCP服务器在192.168.159.0 可以实现分配IP的功能,现在要跨网段分配IP 就需要用到DHCP中继代理。中继代理有两张网卡分别eth0:IP 192.168.159.2 ;eth1: IP:192.168.200.2 。现在要实现192.168.200.0网段的客户机可以获取DHCP服务器的IP。中继代理其实是相当于一个路由器的作用 DHCP服务器的IP地址 :192.168.159...

DJ_joker的博客 2223

DSMA时序修复避坑指南:当Setup和Hold互卡时,除了调Margin还能做什么?

本文深入探讨DSMA时序修复中的Setup与Hold互锁问题,提供7种高阶策略,包括优先级判断、高级参数组合、单元类型智能替换等,帮助工程师突破时序收敛瓶颈。特别针对fix_eco_timing命令的隐藏参数和物理协同优化进行详细解析,助力芯片设计实现时序收敛。

weixin_30162121的博客 294

2025年第十六届蓝桥杯国赛C/C++大学B组个人题解

本文分享了作者参加蓝桥杯国赛的解题经历与反思。作者记录了编程题的解题思路和代码实现,重点分析了试题D的重大失误(未预处理导致超时)和试题G的神救场经历。在解题过程中,作者通过手动模拟、动态规划、全排列等方法解决问题,但也暴露出因刷题不足导致的惯性思维问题。最终估分40分左右,期望获得国三奖项。作者特别感谢广州华南商贸职业学院的良好比赛环境,并总结出“通过努力提高实力”的核心经验。文章展现了算法竞赛的挑战性与临场发挥的重要性。

Washington89757的博客 2135

PMF5.0计算

EPA PMF5.0 计算步骤

nuistsy的博客 4531

蓝桥杯 握手问题

小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。在会议上,大家进行了握手交流。按照惯例,他们每个人都要与除自己以外的其他所有人进行一次握手(且仅有一次)。但有 7 个人,这 7 人彼此之间没有进行握手(但这 7 人与除这 7 人以外的所有人进行了握手)。请问这些人之间一共进行了多少次握手?本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。A 和 B 握手的同时也意味着 B 和 A 握手了,所以算作是一次握手。

wuqingshun314159的博客 455

竞赛无人机模块化开发实战:2023 TI电赛G题空地协同消防系统(飞控与视觉融合篇)

本文以2023年TI电赛G题为例,详细阐述了采用模块化开发思维构建空地协同智能消防系统的实战方法。文章重点拆解了无人机飞控二次开发、视觉识别与融合控制等核心模块,提供了硬件选型、代码实现与系统联调的完整指南,旨在帮助参赛者通过“搭积木”式编程高效完成复杂系统集成。

js777的博客 452

工业视觉检测实战指南:从硬件配置到AI算法部署

本文提供了一套完整的工业视觉检测系统搭建实战指南。从硬件选型(相机、光源、镜头、工控机)到AI算法(深度学习模型)部署,详细解析了如何为生产线配置一双“会思考的眼睛”。重点探讨了深度学习算法在复杂缺陷识别中的应用,并分享了模型训练、优化及云边协同部署的实战心得,旨在帮助工程师实现从实验室Demo到7x24小时稳定运行的工业落地。

weixin_29051193的博客 456

第十六届蓝桥杯 2025 C/C++组 旗帜

先判断每一行存在几个完整的LANQIAO(或者它的变式),再来计算每一行的不足完整LANQIAO的那一部分

2301_80558092的博客 3864

Starlink卫星动力学系统仿真建模前传1-时空系统介绍

对于在轨道上运动的航天器由于速度接近第一宇宙速度,为了获取准确的位置信息对时间的精度要求极高,为了准确描述航天器的运动规律,本节对卫星仿真建模中用到的各种时间系统进行介绍。卫星轨道平面为坐标平面,坐标原点位于卫星系统质心,轴由卫星系统质心指向地心(当地垂线),轴在轨道面内垂直于轴并指向卫星的前进方向,轴同、轴构成右手系,指向轨道面负法线方向。不同坐标系下的建立的运动形式与复杂程度不同,会直接影响运动方程的求解繁简程度,因此,选取适当的坐标系具有重要的意义。定义星体坐标系,该坐标系简记为系,与卫星本体固连。

xspace的博客 1432

第十六届蓝桥杯大赛软件赛省赛 C/C++ 大学B组

由于官方没有公布题目的数据, 所以代码仅供参考。

Script_Kids的博客 7301

uniapp - 微信支付报错 {“errMsg“:“requestPayment:fail:[payment微信:-1]General errors“} 详细解决办法,uniApp使用微信支付时报错

uniapp,微信支付报错,uniapp微信小程序 H5网页 安卓苹果ios真机调试时报错,uniapp真机测试微信支付报错如何解决,调用微信支付出现报错{"errMsg":"requestPayment:fail:[payment微信:-1]General errors"},微信支付提示错误,uniapp进行微信支付时报错怎么解决,如何解决微信支付报错,uniapp微信支付报错fail,uni-app真机测试ios上报错,uniapp真机测试安卓手机第一次支付成功第二次就报错了,uniapp微信支付调用第

✅ 精选推荐文章 4133

华为OD机试2025A卷 - 用户调度问题(Java & Python& JS & C++ & C )

题目要求每个用户依次选择当前所能选择的最小资源消耗策略,并且若有多个策略的资源消耗相同,则选择最后一个策略。每个用户的选择是独立的,只考虑该用户的策略和相邻用户的约束,不考虑整个调度序列的全局资源消耗。每个用户根据自己的当前状态(即自己的三种选择的资源消耗)做出局部最优选择:在当前可选的策略中,选择消耗最小的那个。如果有多个最小值,则选择最后一个(根据题意)。这一选择是局部的最优,即在当下最有利的选择,但并不保证最终的整体系统资源消耗是最小的。

算法大师! 1万+

2025年第十六届蓝桥杯省赛C++ 研究生组真题

2025年第十六届蓝桥杯省赛C++ 研究生组真题 1.说明 2.题目A:数位倍数(5分) 3.题目B:IPv6(5分) 4.题目C:变换数组(10分) 5.题目D:最大数字(10分) 6.题目E:冷热数字队列(15分) 7.题目F:01串(15分) 8.题目G:甘蔗(20分) 9.题目H:原料采购(20分)

weixin_46560512的博客 4026

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

第十六届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(个人见解,已完结)

加油.

wljy1的博客 1942

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

2025 蓝桥杯省赛c++B组题解---持续更新中

没有解析的是本蒟蒻还没有完全理解,有疑点或者说不太会的,我会持续更新,尽量把没有解析的补上,如果有大佬会的话可以在评论区分享一下,相互进步,大家也可以说说本蒟蒻没有注意到的地方,开拓一下思路,最后祝大家不断学习,不断进步!【解析】这题看着就是一个简单的模拟,事实也是如此,但是数据范围很大,容易超时,那我们来打表找找规律,你会发现最后他都趋向一个值,这就是榜样学习的力量啊!这道题本蒟蒻目前还没有理解,原本用暴力发现根本行不通,数据范围太大了,运行不出来,太难了,等我再理解理解理解,回来补题解(┭┮﹏┭┮)。

2303_80166945的博客 1144

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2025第16届蓝桥杯青少组C++省赛真题

链接:https://pan.quark.cn/s/743de0266348。链接:https://pan.quark.cn/s/c6ca3e2c7679。链接:https://pan.quark.cn/s/93995d3cb150。链接:https://pan.quark.cn/s/7568ae9ca92b。链接:https://pan.quark.cn/s/a94bf02d00c6。链接:https://pan.quark.cn/s/6ccab7ec3cbc。长按复制下标蓝色链接复制领取。

IT_Scratch的博客 327

2025第十六届蓝桥杯省赛第二场(京津冀)JAVA B组真题回顾

自己建了个题单,用来估个分,大家要是有需要直接访问就行完全按照考场代码复现得分如下,不知道蓝桥杯官方会给到多少分。

优快云_xiaozhao_的博客 1048
上一篇: 基础算法合集-线段树
下一篇: 牛客小白月赛115
一只鱼^_
博客等级 码龄3年 1073粉丝 92原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值