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

第十六届蓝桥杯软件赛B组省赛C++题解(京津冀)

大家好,我们又见面了,今天是 2025 年 9 月 27 日,我来给大家分享的是:"第十六届蓝桥杯软件赛B组省赛C++题解(京津冀)"创作不易,大家多多支持,希望对大家有所帮助。

废话不多说,我们直接开始:

题目一:密密摆放

题目链接:密密摆放

【题目描述】

【算法原理】

数学

根据题目的名称:"密密摆放",再结合实际:"大箱子空间利用率越高的话,装的小盒子肯定是越多的",我们就不难得出,250 对应 50,240 对应 30,200 对应 40,这样的话,空间利用率能达到 100%,装入的小盒子的数量是最多的。

因此,本题只需要输出 250 / 50 * 240 / 30 * 200 / 40 即可。

【代码实现】

#include <iostream>using namespace std;int main()
{cout << 250 / 50 * 240 / 30 * 200 / 40 << endl;return 0;
}

题目二:脉冲强度之和

题目链接:脉冲强度之和

【题目描述】

【算法原理】

数学 + 枚举

拿到这道题目之后,我们很容易想到枚举,但是如果暴力枚举的话是很麻烦的。我们根据条件1.:10个连续的正整数我们可以通过等差数列来求和:

因此,我们仅需要从小到大枚举 k,枚举出一个数就判断它的每一位是否相等即可。

【代码实现】

#include <iostream>using namespace std;bool check(int x)
{int tmp = x % 10;while(x){if(tmp != x % 10) return false;x /= 10;}return true;
}int main()
{int ret = 0;for(int k = 1; ; k++){int p = 10 * k + 45;if(p > 20255202) break;if(check(p)) ret += p;}cout << ret << endl;return 0;
}

题目三:25之和

题目链接:25之和

【题目描述】

【算法原理】

数学 模拟

送分题:一层 for 循环直接求和,或者数学等差数列求和都可以。

【代码实现】

#include <iostream>using namespace std;int main()
{int n, sum = 0; cin >> n;for(int i = 0; i < 25; i++)sum += n + i;cout << sum << endl;return 0;
}

题目四:旗帜

题目链接:旗帜

【题目描述】

【算法原理】

暴力模拟,找规律 + 周期

解法一:暴力模拟:

这道题数据范围较小,我们完全可以创建一个string,push_back 200个 "LANQIAO",再结合题意将二维字符数组填满,最后遍历一遍二维数组直接统计结果即可。

解法二:找规律:

我们手写几行尝试去找一下规律:

【代码实现】

#include <iostream>using namespace std;int main()
{int n, m; cin >> n >> m;int ret = 0;for(int i = 0; i < n; i++)for(int j = 0; j < m; j++)if((i + j) % 7 == 1 || (i + j) % 7 == 5)ret++;cout << ret << endl;return 0;
}

题目六:树上寻宝

题目链接:树上寻宝

【题目描述】

【算法原理】

树的遍历 dfs / bfs

简单来说本题就求是树上所有深度不超过 2*k 的点的点权之和。

使用 dfs 或者 bfs (控制好深度)就可以解决。

【代码实现】

#include <iostream>
#include <vector>using namespace std;typedef long long LL;
const int N = 1e5 + 10;int n, k;
LL w[N];
vector<int> edges[N];
bool st[N]; // 标记哪些点已经遍历过
LL sum;void dfs(int x, int dep)
{sum += w[x];st[x] = true;if(dep == k) return;for(auto y : edges[x]){if(st[y]) continue;dfs(y, dep + 1);}
}int main()
{cin >> n >> k; k *= 2;for(int i = 1; i <= n; i++) cin >> w[i];for(int i = 1; i < n; i++){int a, b; cin >> a >> b;edges[a].push_back(b);edges[b].push_back(a);}dfs(1, 0);cout << sum << endl;return 0;
}

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

相关文章:

  • 网站关键词分析工具攻略类型网站如何做产品营销
  • 建设大型视频网站需要的资金量安防公司网站模板
  • 住房城乡建设部招投标网站网站被人做跳转
  • 无忧网站建设哪家好建立英语
  • Visio2021绘图基本操作步骤及方法
  • 基于多站点的网站内容管理平台的管理与应用应用商场安全下载安装
  • SpaceX的Raptor发动机详细介绍
  • 厦门做网站多少软件开发项目预算表
  • 陕西建设网网站集群装修公司加盟哪家最好
  • 网站排名的重要性网站对联广告代码
  • 上海网站建设开发制作wordpress仿导航大全
  • wordpress电影站开发php与网站建设
  • 外贸网站开发公司wordpress输入密码无法登陆
  • 上海网站建设 中华企业录wordpress 原创主题
  • 论坛网站方案wordpress即阅文教程
  • 常用压力单位kPa、MPa、psi、bar和公斤之间的换算关系
  • 青海省住房城乡建设厅网站首页服务器创建网站
  • Matplotlib三层结构全解析
  • 国外的电商网站有哪些方面wordpress 首页文件
  • sadasddasads
  • 温州公司做网站公司网页制作设计
  • 昆山做网站的jofuns门户网站开发难点
  • Python 数学公式构建海洋不明生物(好像是水母)动画 - 波浪起伏效果
  • 做毕业设计个人网站任务书购物网站名字
  • 青岛网站建设公司正uc酷站中的美图网站
  • 基于netty建立webSocket连接
  • 网站生成app客户端wordpress版权代码
  • 深圳住房和建设局网站故障做一个电商网站需要多少钱
  • 佛山网站建设策划一个网站怎么做镜像站
  • 长春建站推荐南通网站制作计划