第十四届蓝桥杯校内模拟赛(第二期) C++题解分享

2023-10-26

本人是在学校机房参加的第二期模拟赛有些题目没有忘海涵

若有什么好的建议可以提出来来分享这是本小白第一篇CSDN希望能帮助到大家

320c9304cf764e01a1c12e51ae9dca65.png 第一题没啥好说的就是直接暴力枚举 这边直接上代码 (稍微注释)  答案:2048

#include <bits/stdc++.h>

using namespace std;
// 9 二进制 :1001 
int num[50];
bool judge(int x){  
	int cnt=0;
	while(cnt!=6){   // cnt 表示位数  
		num[++cnt]=x%2;  // 把传进来的数的二进制位数从后往前录入 num中 
		x=x/2;  // 从后往前分离出每位二进制数字 
	}
	for(int i=1;i<=6;i++){   // 数位从1到6遍历判断不等于0就退出到主函数继续循环再到judge函数  
		if(num[i]!=0)
			return false;
	}      
	return true; // 表示六位二进制数都等于0并把该数传回主函数并输出 
}
int main(){
	for(int i=2023;i<10000;i++){
		if(judge(i)){
			cout<<i;
			break;
		}
	}	
	return 0;
}

343890902f514e2c9808c8e3556791bb.png

 第二题大家可以用任何方法我用excel表秒出 这里也付上代码 答案:26390

#include<bits/stdc++.h>
using namespace std;
// excel
int month[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
				{0,31,29,31,30,31,30,31,31,30,31,30,31}};
bool isleapyear(int y)
{
	if((y%4==0&&y%100!=0)||(y%400==0)) // 闰年判断  
		return true;
	return false;
}
int main()
{
	int y=1949,m=10,n=1,s;
	s=31*2+30; // 判断到1950年有还有多少天 
	for(int i=1950;i<=2021;i++){
		if(isleapyear(i))
			s+=366;
		else
			s+=365;
	}
	cout<<s;
	return 0;
}

b661c3ac8ce0476e882411ee8d87d714.png

 第三题和第一题思路差不了多少只要熟悉了解进制互相转化模拟出即可 答案:1038

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
ll hex[8];
//  hex 16进制 
// 同第一题的原理一样 

bool judge(int x){
	ll xx=x,sum=0;
	int cnt=0;
	while(x){
		ll t=x%10;
		sum+=t*hex[cnt++];
		x=x/10;
	}
	if(sum%xx==0)
		return true;
	return false;
}
int main(){
	hex[0]=1;
	for(int i=1;i<=7;i++){
		hex[i]=hex[i-1]*16;
	}	
	for(int i=10;i<8518;i++){
		if(judge(i)){
			cout<<i;
			break;
		}
	}
	return 0;
}

第四题没题目数据不全 本人也做错了思路大概是dp然后枚举遍历每个点(本人模拟赛时脑子傻了选错方法去做) 答案好像是592大家还是等待官方答案吧哈哈哈

9cdf8a80536c401d998e44b29ec71166.png

 第五题质数分解呢 本人先用线性筛选质数 复杂度O(N) 习惯了哈哈哈都是防爆的错zzz 接着用个01背包思想可以解出 代码如下  答案 :33

#include <bits/stdc++.h>  //思路 先得将素数表示再用01背包思想 

using namespace std;
const int N=2023;
int dp[N],prime[N],cnt=0; 
bool isprime[N];
//  isprime[i]=true 表示这个数不是素数 ,=false 表示为素数
// prime[0~cnt-1] 一共cnt个数保存了所有的元素 
void shift(){ // 模板 筛选素数 o(n)时间复杂度 
	isprime[1]=1;
	for(int i=2;i<N;i++){
		if(!isprime[i]){
		
			prime[cnt++]=i;
		}
		for(int j=0;j<cnt&&prime[j]*i<N;j++){
			isprime[i*prime[j]]=1;
			if(i%prime[j]==0)
				break;
		}
	}
}
int main(){
	shift();     // 以下注释的是输出素数的个数以及循环遍历输出各个素数  后来自己补的
//	cout<<cnt<<endl; 
//	for(int i=0;i<cnt;i++)
//		cout<<prime[i]<<endl;
	memset(dp,-1,sizeof(dp));  // 这里是动态规划的01背包问题思维 
	dp[0]=0;
	for(int i=0;i<cnt;i++){
		for(int j=2022;j>=prime[i];j--){
			if(dp[j-prime[i]]!=-1)
				dp[j]=max(dp[j],dp[j-prime[i]]+1);
		}
	}
	cout<<dp[2022];
	
}

49bf808e9e274332b621da6c55a8b95c.png

 编程题第一题没啥好说的数据还有一对我也没给出来 大家自行理会哈哈哈哈

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
ll t,c,s;
//每秒拷贝c/t字节,共需s/(c/t)=s*t/c; 
int main(){
	scanf("%lld %lld %lld",&t,&c,&s);
	ll ans=s*t/c;
	printf("%lld",ans-t);
}

047373621970493791856994a8356d62.png

第三题编程(顺序搞错了哈哈下面一题是第二题)只截到这里 还有的是输入banana 输出 bananab  输入noon  输出noon

这题需要注意的是 双指针后的枚举遍历分割最优对称中心 (注意字符串长度的奇数和偶数耶)

#include<bits/stdc++.h>

using namespace std;
 
bool judge(int start,int end,string s){
	while(start<end){
		if(s[start]!=s[end]) break;
		start++;
		end--;
	}
	if(start==end||s[start]==s[end])  //   这里判断字符串奇数时没事偶数的话需要或 
		return true;
	return false;
}
 
int main(){
	string str;
	cin>>str;
	int end=str.size()-1; //  
	int start=end; // 分割点的位置 start前全补后面 
	for(int i=0;i<str.size();i++){ // 枚举哪个分割点最好 
		if(judge(i,end,str)){  // 判断 
			start=i;
			break;
		}
	} 
	for(int i=start-1;i>=0;i--){ //  字符串的start 往end方向遍历判断满足条件是否是回文串 
		str+=str[i];
	}
	cout<<str<<endl;
	return 0;
}

b8779ca6096344fca7a19687b29ca45d.png

第二题编程是这个哈哈哈思路呢是用stl 里面map的映射哈哈哈 大家用集合也是可以的因为没有重复元素嘛嘿嘿 以下为大家献上代码

#include <bits/stdc++.h>

using namespace std;

int n;

// 查重的话可以用stl的set函数 (集合思想嘛懂得都懂) 
map<string,int> mp;  // stl的map函数 把数组的东西映射到后一个上  
int main(){
	cin>>n;
	string s; 
	for(int i=1;i<=n;i++){
		cin>>s;
		if(mp.find(s)==mp.end()){
			cout<<s<<endl;
			mp[s]=1;
		}
	}
	return 0;
}

 编程倒二没题目本人也记不清楚这么写了大概思路也可以枚举吧哈哈哈估计本人也是没做对太菜了呜呜呜

87353a02f481460a85ef8fba59903d69.png

 编程倒一题这里样例输出是12  思路想的有点久大概就是树状数组 贪心 小枚举   需要特别注意的是这题数据要求稍微有点严格为了防爆这里取的是极限为1e6+10 代码给各位附上

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const int N=1e6+10;
typedef struct Node{
	ll val;
	int idx;
}Node; 
Node p[N];
int n;
int tr[N];
bool cmp(Node x,Node y){
	if(x.val==y.val)
		return x.idx<y.idx;
	return x.val<y.val;
}
int lowbit(int x){
	return x&(-x);
}
void update(int x){
	while(x<=n){
		tr[x]+=1;
		x+=lowbit(x);
	}
}
int ask(int x){
	int res=0;
	while(x){
		res+=tr[x];
		x-=lowbit(x);
	}
	return res;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%lld",&p[i].val);
		p[i].idx=i;
	}
	sort(p+1,p+n+1,cmp);
	ll res=0;
	for(int i=n;i>=1;i--){
		int bias=ask(p[i].idx);
		res=res+(i-p[i].idx+bias)*p[i].val;
		update(p[i].idx);
	}
	printf("%lld\n",res);
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第十四届蓝桥杯校内模拟赛(第二期) C++题解分享 的相关文章

  • 如何开启VT方法

    第 步 进入BOIS 重启电脑后 屏幕刚亮 笔记本一般快速按F1或F12 台式一般按DEL键 多按几下 成功后 会进入BIOS设置页面 第 步 找到 Intel Virtualization Technology 把 Disabled 修改
  • 跨平台方案Flutter入门——开发环境搭建

    目录 系统配置要求 获取 Flutter SDK 配置环境变量 安装 Android Studio 运行 flutter doctor 1 Anroid 的 SDK 路径 2 许可未同意 Android Studio 安装插件 Androi
  • 快来动手训练属于自己的聊天机器人吧!

    活动时间 北京时间2023年3月16日15 00 17 00 活动形式 在线直播 动手训练营 动手实践 使用 Amazon SageMaker 构建基于开源 GPT J 模型的对话机器人应用 难度 入门 时间 20 分钟 开发者可以使用 A

随机推荐

  • Python 遇到的问题

    目录 问题1 Pycharm 项目中 Cannot find declaration to go to 问题2 TypeError list indices must be integers or slices not tuple
  • 【C++】继承

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 继承的概念 二 被继承成员访问方式的变化 三 赋值兼容
  • 详解不带参数的 Math.max() 返回 -Infinity

    Math max 是内置的 JavaScript 函数 从给定的一组数字中返回最大值 其语法如下 Math max value1 value2 例如 让我们从 1 2 以及 3 中找到最大的数字 Math max 1 2 3 gt 3 正如
  • [架构之路-199] - 可靠性需求与可靠性分析:鱼骨图、故障树分析法FTA、失效模式与影响DFMEA,找到影响故障的主要因素

    目录 引言 第1章 故障树分析法与鱼骨图的比较 1 1 相同点 1 2 区别点 第2章 鱼骨图 第3章 故障树 3 1 示意图 3 2 故障树解读 3 3 故障树常见符号 第4章 产品失效 Failure 模式分析DFMEA 引言 目标系统
  • git The following paths are ignored by one of your .gitignore files: Use -f if you really want to ad

    git 右键或者命令add 文件或目录 不允许提交 提示 The following paths are ignored by one of your gitignore files Use f if you really want to
  • msvcp140.dll重新安装的解决方法(一键安装方法)

    msvcp140 dll电脑文件中的dll文件 即动态链接库文件 若计算机中丢失了某个dll文件 就会导致某些软件和游戏等程序无法正常启动运行 并且导致电脑系统弹窗报错 其安装方法 1 打开浏览器输入 dll修复程序 site 并下载安装m
  • 计算机二级准考证打印通道,2019年9月计算机二级准考证打印快速入口

    2019年9月份为全国计算机等级考试时间 各省从9月11日起陆续开始打印准考证 考生与9月8日起登入打印入口进行打印 考点报名者在考点领取即可 下面我们快来看看北京 上海 陕西 吉林等各省市的打印时间和打印入口在哪 1 各省计算机二级准考证
  • Redis 7 第九讲 微服务集成Redis 应用篇

    Jedis 理论 Jedis是redis的java版本的客户端实现 使用Jedis提供的Java API对Redis进行操作 是Redis官方推崇的方式 并且 使用Jedis提供的对Redis的支持也最为灵活 全面 不足之处 就是编码复杂度
  • Java 区块链BLOCKCHAIN中区块BLOCK的hash值的计算

    Java 区块链中区块的hash值的计算 计算方法有多种 如 可以直接String拼接 也可以用stringbuffer 或者stringbuilder 这里采用了速度较快的stringbuilder 自己编程的时候可采用stringbuf
  • 实验:使用SSMS创建并管理数据库及其基本表(代码版)

    目录 一 实验要求 1 使用SQL命令创建学生课程 SCC 数据库 2 使用SQL命令学生课程数据库中的学生表 S 课程表 C 选课表 SC 并保存关闭设计窗口 3 使用SQL命令修改基本表结构 即增加和删除列 4 使用SQL命令创建及管理
  • Everything+cpolar内网穿透轻松实现公网远程访问本地硬盘文件

    公网远程访问本地硬盘文件 内网穿透 文章目录 公网远程访问本地硬盘文件 内网穿透 前言 1 下载cpolar和Everything软件 3 设定http服务器端口 4 进入cpolar的设置 5 生成公网连到本地内网穿透数据隧道 总结 前言
  • Request和ThreadLocal

    Web容器中有三个周期 request Httpsession application 其中request是客户端发出的一个请求 这个request的载体就是一个 线程 实际等同于一个线程的生命周期 Request是封装在线程上面一个抽象概
  • windows下pip安装mysqlclient失败

    环境 windows8家庭版 python3 6 7 在虚拟环境中pip install mysqlclient报错 解决方案 下载地址 ctrl f键入mysqlclient 找到对应的版本即可 博主是python3 6 7 所以选择了倒
  • 2021 程序媛跳槽记:学习计划篇

    三妹跳槽系列文章 2021 程序媛跳槽记 百度阿里字节等各大厂面经篇 2021 程序媛跳槽记 必刷LeetCode算法题 附解题报告 坦白说 我这个人不算聪明 基础也不咋样 这次跳槽我一开始是很没信心的 甚至想把这次尝试当做试水 如果受打击
  • Go_数组遍历、最大值、求和、多维数组

    数组 数组就是用来存储数据的容器 存储多个数据时数据类型要一致 如果想要保存任意类型数据 需要声明为接口类型数组 数组定义完成后 可以对数组进行赋值操作 数组是通过下标来进行操作的 下标的范围是从0开始到数组长度减1的位置 特点 数组是一种
  • 关闭windows defender教程

    由于windows自带的防护软件在后台占用大量内存 然后可以使用其他第三方软件来 然后本人使用的是火绒 这里平时的内存占用了不到100MB 然后其实这里本来应该插入一个windows defender的占用内存 我记得是在200 MB 反正
  • git 上传 github报错 (Permission denied)

    文章目录 结论 起因 新建github仓库 本地仓库初始化 结论 ssh config 中 Host 值可以随意写 cat git config 中 remote origin url git B test demo git url 值 后
  • 微服务讲堂--【5】系统自举

    这里的 系统自举 借用了操作系统的概念 在操作系统启动之前 计算机要先加载自举程序 再由自举程序加载操作系统的启动程序 整个详细过程不在这里描述 可以在网络查阅相关资料 为什么要在微服务系统中特别提及系统自举这个概念呢 因为这内容很重要 而
  • Unity 勾选development Build 区别,引起的Bug,记录一下

    Unity 勾选development Build 区别 引起的Bug 记录一下 问题 编辑器运行正常 安卓真机 Build And Run 就出现了奇怪的问题 类似数组数据出现了误差 勾选development Build 想要真机调试的
  • 第十四届蓝桥杯校内模拟赛(第二期) C++题解分享

    本人是在学校机房参加的第二期模拟赛有些题目没有忘海涵 若有什么好的建议可以提出来来分享这是本小白第一篇CSDN希望能帮助到大家 第一题没啥好说的就是直接暴力枚举 这边直接上代码 稍微注释 答案 2048 include