蓝桥杯第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组题解
1.幸运数
题目链接:0幸运数 - 蓝桥云课 (lanqiao.cn)
#include<bits/stdc++.h>
using namespace std;
bool deng(string& num){int n = num.size();int qian = 0,hou = 0;for(int i=0;i<n/2;i++) qian += (num[i]-'0');for(int i=n/2;i<n;i++) hou += (num[i]-'0');return qian == hou;
}
int main()
{// 请在此输入您的代码// int ans = 0;// for(int i=1;i<=100000000;i++){// string num = to_string(i);// if(num.size()%2==0){// if(deng(num))// ans++;// }// }cout<<4430091<<endl;return 0;
}
2.有奖问答
题目链接:0有奖问答 - 蓝桥云课 (lanqiao.cn)
这段代码使用动态规划(DP)来解决一个特定的问题,涉及到一系列的题目,每道题目答对可以获得10分,答错分数归零。目标是计算所有可能的得分方式中,最终得分为70分的总方案数。下面是代码的逐行解释:
-
int dp[31][100];这行代码声明了一个二维数组dp,其中dp[i][j]用于存储在完成第i题后,累计得分为j的所有可能的方案数。数组的大小为31行(考虑到0到30题)和100列(考虑到分数从0到90,每10分一个区间)。 -
int res=0;初始化结果变量res,这个变量将用来存储所有得分为70的方案总数。 -
dp[1][0]=dp[1][10]=1;设置初始条件,表示第一题答错和答对的方案数都是1。这是动态规划的基础,从这些初始条件开始,可以计算出后续所有的情况。 -
循环
for(int i=2 ; i<=30 ; i++)遍历从第2题到第30题的每一题。 -
内层循环
for(int j=0 ; j<=90 ; j+=10)遍历所有可能的得分情况,即0到90分(每隔10分遍历一次)。这里不包括100分,因为题目设定中,一旦得分达到100分,游戏/测试就会结束。 -
if(j==0)这个条件处理的是第i题答错的情况,即得分归零的情况。在这种情况下,dp[i][0](即在第i题后得分为0的方案数)等于在完成第i-1题后所有可能得分(0到90分,每隔10分)的方案数之和。 -
else部分处理的是第i题答对的情况。在这种情况下,如果在第i-1题后得分为j-10,则在第i题答对后,得分会变为j。因此,dp[i][j]等于dp[i-1][j-10]。 -
if(j == 70) res+=dp[i][j];如果在第i题后得分为70分,则将这些方案数加到res上,因为题目要求计算所有得分为70分的方案数。
最终,通过动态规划填充 dp 数组,所有得分为70分的方案数被累加到 res 中。最后,cout<<res; 输出这个总方案数。这种使用动态规划的方法高效地遍历了所有可能的答题方案,计算出了满足条件的总方案数。
#include<bits/stdc++.h>
using namespace std;
int dp[31][100];
int main(){int res = 0;dp[1][0] = dp[1][10] = 1;for(int i=2;i<=30;i++){for(int j=0;j<=90;j+=10){if(j==0){for(int k=0;k<=90;k+=10)dp[i][0] += dp[i-1][k];}else{dp[i][j] = dp[i-1][j-10];if(j==70) res+=dp[i][j];}}}cout<<res<<endl;return 0;
}
3.平方差
题目链接:0平方差 - 蓝桥云课 (lanqiao.cn)
居然还有负的输入数据,居然还有大整数乘大整数!
死活过不了的代码,开摆:
#include<bits/stdc++.h>
using namespace std;
vector<int> add(vector<int> &A, vector<int> &B) {vector<int> C;int t = 0;for (int i = 0; i < A.size() || i < B.size(); i++) {if (i < A.size()) t += A[i];if (i < B.size()) t += B[i];C.push_back(t % 10);t /= 10;}if (t > 0) C.push_back(t); // 处理最后的进位return C;
}
bool cmp(vector<int> &A,vector<int> &B){if(A.size()!=B.size()) return A.size()>B.size();for(int i=A.size()-1;i>=0;i--){if(A[i]!=B[i]) return A[i]>B[i];}return true;
}
vector<int> sub(vector<int> &A,vector<int> &B){vector<int> C;int t = 0;for(int i=0;i<A.size();i++){t = A[i] - t;if(i<B.size()) t-=B[i];C.push_back((t+10)%10);if(t<0) t = 1;else t = 0;}while(C.size()>1&&C.back()==0) C.pop_back();return C;
}
vector<int> mul(vector<int>& A, vector<int>& B) {vector<int> C(A.size() + B.size(), 0); // 乘积的最大可能位数为两乘数位数之和// 逐位相乘for (size_t i = 0; i < A.size(); ++i) {for (size_t j = 0; j < B.size(); ++j) {C[i + j] += A[i] * B[j]; // 累加到对应的位置}}// 处理进位int carry = 0;for (size_t i = 0; i < C.size(); ++i) {C[i] += carry;carry = C[i] / 10;C[i] %= 10;}// 移除前导0while (C.size() > 1 && C.back() == 0) {C.pop_back();}return C;
}int main()
{// 请在此输入您的代码string a;string b;cin>>a;cin>>b;vector<int> A,B,add_C,sub_C,mul_C;for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');for(int i=b.size()-1;i>=0;i--) B.push_back(b[i]-'0');add_C = add(A,B);bool flag = false;if(cmp(A,B)) sub_C = sub(A,B);else{flag = true;sub_C = sub(B,A);}sub_C = sub(A,B);mul_C = mul(add_C,sub_C);if(flag) cout<<"-";for(int i=mul_C.size()-1;i>=0;i--) cout<<mul_C[i];return 0;
}
4.更小的数
题目链接:0更小的数 - 蓝桥云课 (lanqiao.cn)
思路:双层循环遍历所有情况,外层枚举起点,内层枚举终点,查看反转当前字符串能否使得结果更小。
#include<bits/stdc++.h>
using namespace std;
int seek(string s,int i,int j){if(j-i<3) return 0;if(s[i+1]>s[j-1]) return 1;else if(s[i+1]==s[j-1]) return seek(s,i+1,j-1);else return 0;
}
int main()
{// 请在此输入您的代码string s;cin>>s;int n = s.size();int ans = 0;for(int i=0;i<=n-2;i++){for(int j=i+1;j<=n-1;j++){if(s[i] > s[j]) ans++;if(s[i] == s[j]) ans += seek(s,i,j);}}cout<<ans<<endl;return 0;
}
5.颜色平衡树
题目链接:0颜色平衡树 - 蓝桥云课 (lanqiao.cn)
考场上打死我也做不出来,略。
6.买瓜
题目链接:0买瓜 - 蓝桥云课 (lanqiao.cn)
思路:dfs,枚举三种情况,不选当前瓜,选当前瓜的一半,选当前瓜。代码妙在将需要求的目标和每个瓜的值先乘2,免去了整除的尴尬。还使用了倒着的前缀和来剪枝。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,ans = 50;
ll m,a[50],sum[50];
void dfs(ll S,int i,int cnt){if(cnt>=ans) return;if(S==m) ans = cnt;if(i>n||S>m||S+sum[i]<m) return;dfs(S,i+1,cnt);dfs(S+a[i],i+1,cnt);dfs(S+a[i]/2,i+1,cnt+1);
}
int main(){cin>>n>>m;m<<=1;for(int i=0;i<n;i++){cin>>a[i];a[i]>>=1;}sort(a,a+n,greater<>());for(int i=n-1;i>=0;i--){sum[i] = sum[i+1] + a[i];}dfs(0,0,0);if(ans==50){cout<<-1<<endl;}else{cout<<ans<<endl;}return 0;
}
7.网络稳定性
题目链接:0网络稳定性 - 蓝桥云课 (lanqiao.cn)
什么是LCA,不会。
8.异或和之和
题目链接:0异或和之和 - 蓝桥云课 (lanqiao.cn)
完全不会啊。
#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int a[N], cnt[25][5], n; //cnt[i][j]: 第i位j的个数
long long ans;int main()
{scanf("%d", &n);for(int i = 1; i <= n; i++){scanf("%d", &a[i]);//异或前缀和a[i] ^= a[i - 1];}//[i, j]的异或和 = a[j] ^ a[i - 1],因为 a ^ b = c,a ^ c = bfor(int i = 1; i <= n; i++)for(int j = i; j <= n; j++)ans += a[j] ^ a[i - 1];//下面就是优化这个步骤// //遍历二进位每一位// for(int i = 0; i <= 20; i++)// //遍历每一个数,j=0就是左右区间相等的情况// for(int j = 0; j <= n; j++)// cnt[i][(a[j] >> i) & 1]++;// //乘法原理,把所有情况乘起来// for(int i = 0; i <= 20; i++){// ans += (long long)cnt[i][0] * cnt[i][1] * (1 << i);// }printf("%lld", ans);return 0;
}
9.像素放置
题目链接:0像素放置 - 蓝桥云课 (lanqiao.cn)
极少的能看懂的代码。
#include<bits/stdc++.h>
using namespace std;
int f[12][12];
char d[12][12];
int n,m;
bool check(int x,int y){if(d[x][y]=='_') return true;int cnt = 0;for(int i=-1;i<=1;i++){for(int j=-1;j<=1;j++){cnt+=f[x+i][y+j];}}if(cnt==d[x][y]-'0')return true;return false;
}
void dfs(int x,int y){if(x==n+1){for(int y=1;y<=m;y++){if(!check(n,y))return;}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cout<<f[i][j];}cout<<endl;}return;}if(y==m){f[x][y] = 0;if(x==1 || (y==1 && check(x-1,y)) || (check(x-1,y-1) && check(x-1,y)))dfs(x+1,1);f[x][y] = 1;if(x==1 || (y==1 && check(x-1,y)) || (check(x-1,y-1) && check(x-1,y)))dfs(x+1,1);}else{f[x][y] = 0;if(x==1 || y==1 || check(x-1,y-1))dfs(x,y+1);f[x][y] = 1;if(x==1 || y==1 || check(x-1,y-1))dfs(x,y+1);}
}
int main()
{// 请在此输入您的代码cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>d[i][j];}}dfs(1,1);return 0;
}
10.翻转硬币
题目链接:0翻转硬币 - 蓝桥云课 (lanqiao.cn)
完全不会。
相关文章:
蓝桥杯第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组题解
1.幸运数 题目链接:0幸运数 - 蓝桥云课 (lanqiao.cn) #include<bits/stdc.h> using namespace std; bool deng(string& num){int n num.size();int qian 0,hou 0;for(int i0;i<n/2;i) qian (num[i]-0);for(int in/2;i<n;i) hou (num[i]-0);r…...
eclipse .project
.project <?xml version"1.0" encoding"UTF-8"?> <projectDescription> <name>scrm-web</name> <comment></comment> <projects> </projects> <buildSpec> <buil…...
react的闭包陷阱
React 的闭包陷阱是指在使用 React Hooks 时,由于闭包特性导致在某些函数或异步操作中无法正确访问到更新后状态或 prop 的值,而仍旧使用了旧值。下面通过几个代码示例来具体说明闭包陷阱的几种常见情形: 示例 1: useState 闭包陷阱 import…...
神经网络解决回归问题(更新ing)
神经网络应用于回归问题 优势是什么???生成数据集:通用神经网络拟合函数调整不同参数对比结果初始代码结果调整神经网络结构调整激活函数调整迭代次数增加早停法变量归一化处理正则化系数调整学习率调整 总结ingfnn.py进行计算&am…...
【小红书校招场景题】12306抢票系统
1 坐过高铁吧,有抢过票吗。你说说抢票系统对于后端开发人员而言会有哪些情况? 对于后端开发人员来说,开发和维护一个高铁抢票系统(如中国的12306)会面临一系列的挑战和情况。这些挑战主要涉及系统的性能、稳定性、数据…...
Spring(三)
1. Spring单例Bean是不是线程安全的? Spring单例Bean默认并不是线程安全的。由于多个线程可能访问同一份Bean实例,当Bean的内部包含了可变状态(mutable state)即有可修改的成员变量时,就可能出现线程安全问题。Spring容器不会自动…...
使用element-plus中的表单验证
标签页代码如下: // 注意:el-form中的数据绑定不可以用v-model,要使用:model <el-form ref"ruleFormRef" :rules"rules" :model"userTemp" label-width"80px"><el-row :gutter"20&qu…...
flinksql
Flink SQL 是 Apache Flink 项目中的一个重要组成部分,它允许开发者使用标准的 SQL 语言来处理流数据和批处理数据。Flink SQL 提供了一种声明式的编程范式,使得用户能够以一种简洁、高效且易于理解的方式来表达复杂的数据处理逻辑。 ### 背景 Flink SQL 的设计初衷是为了简…...
Dockerfile中 CMD和ENTRYPOINT的区别
在 Dockerfile 中,CMD 和 ENTRYPOINT 都用于指定容器启动时要执行的命令。它们之间的主要区别是: - CMD 用于定义容器启动时要执行的命令和参数,它设置的值可以被 Dockerfile 中的后续指令覆盖,包括在运行容器时传递的参数。如果…...
【TC3xx芯片】TC3xx芯片的总线内存保护
前言 广义上的内存保护,包括<<【TC3xx芯片】TC3xx芯片MPU介绍>>一文介绍的MPU(常规狭义上的内存保护),<<【TC3xx芯片】TC3xx芯片的Endinit功能详解>>一文中介绍的寄存器的EndInit保护,<<【TC3xx芯片】TC3xx芯片ACCEN寄存器保护详解>>一…...
抖音小店选品必经五个阶段,看你到哪一步了,直接决定店铺爆单率
大家好,我是电商笨笨熊 新手选品必经的阶段就是迷茫期,不知道怎么选品,在哪里选品,选择什么样的品; 而有些玩家也会在进入店铺后疯狂选品,但是上架的商品没有销量; 而这些都是每个玩家都要经…...
ML在骨科手术术前、书中、术后方法应用综述【含数据集】
达芬奇V手术机器人 近年来,人工智能(AI)彻底改变了人们的生活。人工智能早就在外科领域取得了突破性进展。然而,人工智能在骨科中的应用研究尚处于探索阶段。 本文综述了近年来深度学习和机器学习应用于骨科图像检测的最新成果,描述了其贡献、优势和不足。以及未来每项研究…...
vue3-video-play 在安卓上正常播放,在ios上不能播放,问题解决
1.ios上autoplay需要静音,在播放后再打开声音 <vue3videoPlay v-if"!isComponent" v-bind"options" :playsinline"playsinline"></vue3videoPlay>let playsinline computed(() > {if (props.isComponent) {return}o…...
【C++类和对象】上篇
💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…...
微信订阅号环境搭建及开发者工具下载
目录 一、注册订阅号 1.1 选择注册 2.2 选择订阅号注册 1.3 登录进入主页面 编辑 1.4 可以进行自定义菜单 1.5 我们重点关注公众平台测试账号 编辑 1.6 自定义一个域名 1.7 用自己的微信扫描这个二维码 编辑 1.8 点击修改,并自定义个域名 二、开发…...
Failed to resolve ‘bss.myhuaweicloud.com‘ ([Errno -2] Name or service not know
Failed to resolve ‘bss.myhuaweicloud.com’ ([Errno -2] Name or service not know 解決方案: 修改/etc/resolv.conf文件来指定DNS服务器,例如添加Google的公共DNS服务器: nameserver 8.8.8.8 nameserver 8.8.4.4...
大厂基础面试题(之二)
Q1:flex布局 Flex布局容器属性包括: flex-direction: 定义主轴的方向,决定flex容器中的子元素的排列方式 flex-wrap:设置子元素是否换行 flex-flow:是flex-direction和flex-wrap的简写形式,用于设置容器的排…...
swiftui macOS实现加载本地html文件
import SwiftUI import WebKitstruct ContentView: View {var body: some View {VStack {Text("测试")HTMLView(htmlFileName: "localfile") // 假设你的本地 HTML 文件名为 index.html.frame(minWidth: 100, minHeight: 100) // 设置 HTMLView 的最小尺寸…...
科技云报道:大模型加持后,数字人“更像人”了吗?
科技云报道原创。 北京冬奥运AI 虚拟人手语主播、杭州亚运会数字人点火、新华社数字记者、数字航天员小诤…当随着越来越多数字人出现在人们生活中,整个数字人行业也朝着多元化且广泛的应用方向发展,快速拓展到不同行业、不同场景。 面向C端࿰…...
轻松驾驭时间流:MYSQL日期与时间函数的实用技巧
🌈 个人主页:danci_🔥 系列专栏:《MYSQL应用》💪🏻 制定明确可量化的目标,坚持默默的做事。 轻松驾驭时间流:MYSQL日期与时间函数的实用技巧 MYSQL日期时间函数是数据库操作中不可…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
