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

蓝桥杯第十四届蓝桥杯大赛软件赛省赛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分的总方案数。下面是代码的逐行解释:

  1. int dp[31][100]; 这行代码声明了一个二维数组 dp,其中 dp[i][j] 用于存储在完成第 i 题后,累计得分为 j 的所有可能的方案数。数组的大小为31行(考虑到0到30题)和100列(考虑到分数从0到90,每10分一个区间)。

  2. int res=0; 初始化结果变量 res,这个变量将用来存储所有得分为70的方案总数。

  3. dp[1][0]=dp[1][10]=1; 设置初始条件,表示第一题答错和答对的方案数都是1。这是动态规划的基础,从这些初始条件开始,可以计算出后续所有的情况。

  4. 循环 for(int i=2 ; i<=30 ; i++) 遍历从第2题到第30题的每一题。

  5. 内层循环 for(int j=0 ; j<=90 ; j+=10) 遍历所有可能的得分情况,即0到90分(每隔10分遍历一次)。这里不包括100分,因为题目设定中,一旦得分达到100分,游戏/测试就会结束。

  6. if(j==0) 这个条件处理的是第 i 题答错的情况,即得分归零的情况。在这种情况下,dp[i][0](即在第 i 题后得分为0的方案数)等于在完成第 i-1 题后所有可能得分(0到90分,每隔10分)的方案数之和。

  7. else 部分处理的是第 i 题答对的情况。在这种情况下,如果在第 i-1 题后得分为 j-10,则在第 i 题答对后,得分会变为 j。因此,dp[i][j] 等于 dp[i-1][j-10]

  8. 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.幸运数 题目链接&#xff1a;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 时&#xff0c;由于闭包特性导致在某些函数或异步操作中无法正确访问到更新后状态或 prop 的值&#xff0c;而仍旧使用了旧值。下面通过几个代码示例来具体说明闭包陷阱的几种常见情形&#xff1a; 示例 1: useState 闭包陷阱 import…...

神经网络解决回归问题(更新ing)

神经网络应用于回归问题 优势是什么&#xff1f;&#xff1f;&#xff1f;生成数据集&#xff1a;通用神经网络拟合函数调整不同参数对比结果初始代码结果调整神经网络结构调整激活函数调整迭代次数增加早停法变量归一化处理正则化系数调整学习率调整 总结ingfnn.py进行计算&am…...

【小红书校招场景题】12306抢票系统

1 坐过高铁吧&#xff0c;有抢过票吗。你说说抢票系统对于后端开发人员而言会有哪些情况&#xff1f; 对于后端开发人员来说&#xff0c;开发和维护一个高铁抢票系统&#xff08;如中国的12306&#xff09;会面临一系列的挑战和情况。这些挑战主要涉及系统的性能、稳定性、数据…...

Spring(三)

1. Spring单例Bean是不是线程安全的? Spring单例Bean默认并不是线程安全的。由于多个线程可能访问同一份Bean实例&#xff0c;当Bean的内部包含了可变状态&#xff08;mutable state&#xff09;即有可修改的成员变量时&#xff0c;就可能出现线程安全问题。Spring容器不会自动…...

使用element-plus中的表单验证

标签页代码如下&#xff1a; // 注意&#xff1a;el-form中的数据绑定不可以用v-model&#xff0c;要使用: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 中&#xff0c;CMD 和 ENTRYPOINT 都用于指定容器启动时要执行的命令。它们之间的主要区别是&#xff1a; - CMD 用于定义容器启动时要执行的命令和参数&#xff0c;它设置的值可以被 Dockerfile 中的后续指令覆盖&#xff0c;包括在运行容器时传递的参数。如果…...

【TC3xx芯片】TC3xx芯片的总线内存保护

前言 广义上的内存保护,包括<<【TC3xx芯片】TC3xx芯片MPU介绍>>一文介绍的MPU(常规狭义上的内存保护),<<【TC3xx芯片】TC3xx芯片的Endinit功能详解>>一文中介绍的寄存器的EndInit保护,<<【TC3xx芯片】TC3xx芯片ACCEN寄存器保护详解>>一…...

抖音小店选品必经五个阶段,看你到哪一步了,直接决定店铺爆单率

大家好&#xff0c;我是电商笨笨熊 新手选品必经的阶段就是迷茫期&#xff0c;不知道怎么选品&#xff0c;在哪里选品&#xff0c;选择什么样的品&#xff1b; 而有些玩家也会在进入店铺后疯狂选品&#xff0c;但是上架的商品没有销量&#xff1b; 而这些都是每个玩家都要经…...

ML在骨科手术术前、书中、术后方法应用综述【含数据集】

达芬奇V手术机器人 近年来,人工智能(AI)彻底改变了人们的生活。人工智能早就在外科领域取得了突破性进展。然而,人工智能在骨科中的应用研究尚处于探索阶段。 本文综述了近年来深度学习和机器学习应用于骨科图像检测的最新成果,描述了其贡献、优势和不足。以及未来每项研究…...

vue3-video-play 在安卓上正常播放,在ios上不能播放,问题解决

1.ios上autoplay需要静音&#xff0c;在播放后再打开声音 <vue3videoPlay v-if"!isComponent" v-bind"options" :playsinline"playsinline"></vue3videoPlay>let playsinline computed(() > {if (props.isComponent) {return}o…...

【C++类和对象】上篇

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…...

微信订阅号环境搭建及开发者工具下载

目录 一、注册订阅号 1.1 选择注册 2.2 选择订阅号注册 1.3 登录进入主页面 ​编辑 1.4 可以进行自定义菜单 1.5 我们重点关注公众平台测试账号 ​编辑 1.6 自定义一个域名 1.7 用自己的微信扫描这个二维码 ​编辑 1.8 点击修改&#xff0c;并自定义个域名 二、开发…...

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 解決方案&#xff1a; 修改/etc/resolv.conf文件来指定DNS服务器&#xff0c;例如添加Google的公共DNS服务器&#xff1a; nameserver 8.8.8.8 nameserver 8.8.4.4...

大厂基础面试题(之二)

Q1&#xff1a;flex布局 Flex布局容器属性包括&#xff1a; flex-direction: 定义主轴的方向&#xff0c;决定flex容器中的子元素的排列方式 flex-wrap&#xff1a;设置子元素是否换行 flex-flow&#xff1a;是flex-direction和flex-wrap的简写形式&#xff0c;用于设置容器的排…...

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 虚拟人手语主播、杭州亚运会数字人点火、新华社数字记者、数字航天员小诤…当随着越来越多数字人出现在人们生活中&#xff0c;整个数字人行业也朝着多元化且广泛的应用方向发展&#xff0c;快速拓展到不同行业、不同场景。 面向C端&#xff0…...

轻松驾驭时间流:MYSQL日期与时间函数的实用技巧

​&#x1f308; 个人主页&#xff1a;danci_&#x1f525; 系列专栏&#xff1a;《MYSQL应用》&#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 轻松驾驭时间流&#xff1a;MYSQL日期与时间函数的实用技巧 MYSQL日期时间函数是数据库操作中不可…...

如何在极狐GitLab 使用Docker 仓库功能

本文作者&#xff1a;徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何在[极狐GitLab…...

streamlit 大模型前段界面

结合 langchain 一起使用的工具&#xff0c;可以显示 web 界面 pip install streamlit duckduckgo-search 运行命令 streamlit run D:\Python_project\NLP\大模型学习\test.py import os from dotenv import load_dotenv from langchain_community.llms import Tongyi load…...

K8s 命令行工具

文章目录 K8s 命令行工具kubectl 工具在任意节点使用kubectl方式创建对象命令显示和查找资源更新资源修补资源编辑资源Scale 资源删除资源查看pod信息节点相关操作 K8s 命令行工具 在搭建集群的时候&#xff0c;我们通过yum 下载了kubeadm kubelet kubectl 三个命令行工具&…...

优先级队列

优先级队列的基本使用 模拟实现上面的接口函数&#xff0c;优先级队列不是队列&#xff0c;而是类似一个堆一样的东西&#xff0c;我们先来试试它的接口函数是怎么个样子的。 需要包含的头文件是queue。 #include<iostream> #include<queue> using namespace std;…...

gitlab使用

个人笔记&#xff08;整理不易&#xff0c;有帮助&#xff0c;收藏点赞评论&#xff0c;爱你们&#xff01;&#xff01;&#xff01;你的支持是我写作的动力&#xff09; 笔记目录&#xff1a;学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 个人随笔…...

ppt技巧:如何将Word文档大纲中导入到幻灯片中?

在PowerPoint中&#xff0c;将Word文档的大纲导入到新的幻灯片是一种非常实用的技巧。以下是详细的步骤&#xff1a; 首先&#xff0c;需要打开PowerPoint软件并打开原始的幻灯片文件。 在PowerPoint的顶部【开始】菜单栏中&#xff0c;找到并点击“新建幻灯片”按钮&#xff0…...

0.开篇:SSM+Spring Boot导学

1. 为什么要使用框架 Spring是一个轻量级Java开发框架&#xff0c;最早有Rod Johnson创建&#xff0c;目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。 几乎当下所有企业级JavaEE开发都离不开SSM&#xff08;Spring SpringMVC MyBatis&#xff09;Spring B…...

7、configMap

1、configMap是什么 类似与pod的配置中心&#xff0c;不会因为pod的创建销毁&#xff0c;相关配置发生改变 pod定义硬编码意味着需要有效区分⽣产环境与开发过程中的pod 定义。为了能在多个环境下复⽤pod的定义&#xff0c;需要将配置从pod定义描 述中解耦出来。 2、向容器中…...

【Java面试题】JVM(26道)

文章目录 JVM面试题基础1.什么是JVM&#xff1f;2.JVM的组织架构&#xff1f; 内存管理3.JVM的内存区域是什么&#xff1f;3.1堆3.2方法区3.3程序计数器3.4Java虚拟机栈3.5本地方法栈 4.堆和栈的区别是什么&#xff1f;5.JDK1.6、1.7、1.8内存区域的变化&#xff1f;6.内存泄露…...

(十三)强缓存和协商缓存的区别

一、浏览器的缓存策略 浏览器的缓存策略是指浏览器在加载页面时如何使用和管理缓存机制。可以提高网页加载速度&#xff0c;减轻服务器负载&#xff0c;并提供更好的用户体验。常用的缓存策略有两种&#xff1a;一种是发送请求&#xff08;协商缓存&#xff09;&#xff0c;一…...

网站建设的原则/百度应用下载

./configure 参数详解 --prefixPREFIX 把所有文件装在目录 PREFIX下面而不是 /usr/local/pgsql 里&#xff0e;实际的文件会安装到不同的子目录里&#xff1b;甚至没有一个文件会直接 安装到 PREFIX 目录里&#xff0e; 如果你有特殊需要&#x…...

中山建设网站官网/百度指数趋势

题目链接 Leetcode.939 最小面积矩形 Rating &#xff1a; 1752 题目描述 给定在 xy平面上的一组点&#xff0c;确定由这些点组成的矩形的最小面积&#xff0c;其中矩形的边平行于 x 轴和 y 轴。 如果没有任何矩形&#xff0c;就返回 0。 示例 1&#xff1a; 输入&#xff1…...

商城网站开发报/seo营销网站

《计算机逻辑设计》是2015年人民邮电出版社出版的图书&#xff0c;作者是余立功。书 名计算机逻辑设计别 名foundation of computer logic design作 者余立功类 别高等教育规划教材出版社人民邮电出版社出版时间2015年8月1日页 数296 页定 价45.00开 本16…...

淘宝官网页版/seo的基本工作内容

iOS4已经直接支持blocks&#xff0c;很有必要学习一下。 在ios中&#xff0c;将blocks当成对象来处理&#xff0c;它封装了一段代码&#xff0c;这段代码可以在任何时候执行。Blocks可以作为函数参数或者函数的返回值&#xff0c;而其本身又可以带输入参数或返回值。它和传统的…...

上海徐汇网站建设/核心关键词和长尾关键词举例

不知道在朋友们使用触发器&#xff0c;如果你已经对触发器很了解了&#xff0c;那么请跳过此文&#xff0c;如果你还没有使用过触发器的话&#xff0c;那就让我们来认识一下吧。QUOTE:定义&#xff1a;   触发器是一种特殊类型的存储过程&#xff0c;不由用户直接调用。当使用…...

网站建设 建站知识/免费关键词搜索工具

生成器表达式的内存效率更高,因为您不必创建额外的列表. 创建一个列表并获得它的长度(后者是一个非常快的O(1)操作)似乎比创建一个生成器和为相对较小的列表添加n更快. In [13]: x [1] In [14]: timeit len([i for i in x if 60 < i < 70]) 10000000 loops, best of 3: …...