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

news2024/11/28 0:37:46

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

文章目录

  • 第十二届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
    • 1、空间
    • 2、卡片
    • 3、直线
    • 4、货物摆放
    • 5、路径
    • 6、时间显示
    • 7、砝码称重
    • 8、杨辉三角形
    • 9、双向排序
    • 10、括号序列

1、空间

在这里插入图片描述

1MB = 1024KB
1KB = 1024byte
1byte=8bit
// cout<<"256*1024*1024/4"; // 记住 1024 即可

2、卡片

在这里插入图片描述
在这里插入图片描述

往简单的讲就是一个排列组合的问题,因为可以选自身,所以n张卡片最多有 n + C2n中方案。
我们可以把它想象成一个开口向上的二次函数然后根据x去求最小的y值。

#include<iostream>
#define ll long long
using namespace std;
ll n,k;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n;
	// (x^2+x)/2 = n
	// 2n = x^2+x
	// x^2+x-2n=0 求x
	for(ll i=1;i<=1e9;i++){
		if(i*i+i>=2*n){
			cout<<i;
			return 0; 
		}
	} 
	return 0;
}

3、直线

在这里插入图片描述

#include<iostream>
#include<set>
#define pii pair<double,double>
#define ll long long
using namespace std;
int x=20,y=21;
set<pii> st;
void check(int x1,int y1,int x2,int y2){
	if(x1==x2||y1==y2)return;
	double k=(y2-y1)*1.0/(x2-x1);
	// y1=k*x1+b y2=k*x2+b
	// k=(y2-y1)/(x2-x1)替代即可算出b=(x2*y1-x1*y2)/(x2-x1) 
	double b=(x2*y1-x1*y2)*1.0/(x2-x1);
	st.insert({k,b});
}
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	for(int i=0;i<y;i++){
		for(int j=0;j<x;j++){
			for(int k=0;k<y;k++){
				for(int t=0;t<x;t++){
					check(j,i,t,k);
				}
			}
		}
	}
	cout<<st.size()+x+y; 
	return 0;
}

4、货物摆放

在这里插入图片描述

先去找到这个数的所有因子,再去枚举这些因可能成为的结果。最后计算这些结果。

#include<iostream>
#include<cmath>
#define ll long long
using namespace std;
ll n = 2021041820210418;
ll a[50001],cnt=0;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	for(int i=1;i<=sqrt(n);i++){
		if(n%i==0){
			a[++cnt]=i;
			if(i*i!=n)a[++cnt]=n/i;
		}
	}
	int res=0;
	for(int l=1;l<=cnt;l++)
		for(int w=1;w<=cnt;w++)
			for(int h=1;h<=cnt;h++)
				if(a[l]*a[w]*a[h]==n)res++;
	cout<<res;
	return 0;
}

5、路径

在这里插入图片描述

#include<iostream>
#define ll long long
using namespace std;
const int n = 2025;
//ll d[n][n];
ll INF = 1e17;
// 循环遍历超时,辗转相除法高效
int gcd(int a,int b){
	if(a%b==0)return b;
	return gcd(b,a%b);
}
int lcm(int a, int b){return a / gcd(a, b) * b;}
//void floyd(){
//	for(int k=1;k<=n;k++)
//		for(int i=1;i<=n;i++)
//		 	for(int j=1;j<=n;j++)
//		 		if(d[i][k]!=INF&&d[k][j]!=INF)d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
//}

int d[n];
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	for(int i=0;i<n;i++)d[i]=INF;
	d[1]=0;
	for(int i=1;i<n;i++)
		for(int j=i+1;j<n&&j-i<=21;j++){
			d[j]=min(d[j],lcm(i,j)+d[i]);
		}
	cout<<d[2021];
	return 0;
}

6、时间显示

在这里插入图片描述
在这里插入图片描述

时间换算,思维创新。

#include<iostream>
#define ll long long
using namespace std;
ll n,h,m,s; 
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n;
	n=n/1000;//舍弃毫秒 1s = 1000ms 
	n=n%(24*60*60);// 一天24小时 
	h=n/3600;
	m=(n-h*3600)/60;
	s=n-3600*h-60*m;
	if(h<10){
		cout<<"0"<<h<<":";
	}else{
		cout<<h<<":";
	}
	if(m<10){
		cout<<"0"<<m<<":";
	}else{
		cout<<m<<":";
	}
	if(s<10){
		cout<<"0"<<s;
	}else{
		cout<<s;
	}
	return 0;
}

7、砝码称重

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<queue>
#include<cmath>
#include<cstring>
using namespace std;
const int N = 1e5+10;
queue<int> q;
int n,w,cnt;
bool ans[N];
int main(){
	memset(ans,0,sizeof(ans));
	cin>>n;
	q.push(0);
	for(int i=0;i<n;i++){
		cin>>w;
		queue<int> tmp_q;
		while(!q.empty()){
			int x=q.front();
			q.pop();
			if(ans[x+w]==false){
				ans[x+w]=true;
				cnt++;
				tmp_q.push(x+w);
			}
			if(ans[abs(x-w)]==false){
				ans[abs(x-w)]=true;
				cnt++;
				tmp_q.push(abs(x-w));
			}
			tmp_q.push(x);
		}
		q=tmp_q;
	}
	cout << cnt-1;//为0的情况不要
	return 0;
}

8、杨辉三角形

在这里插入图片描述
在这里插入图片描述

只会写朴素算法,优化的算法,还没看懂。。。。。
这个只能过40%。

#include<iostream>
#define ll long long
using namespace std;
const int N = 2e3+5;
int dp[N][N],n;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n;
	if(n==1){
		cout<<"1";return 0;
	} 
	dp[1][1]=dp[2][1]=dp[2][2]=1;
	for(int i=3;i<N-1;i++){
		for(int j=1;j<=i;j++){
			if(j==1||j==i){
				dp[i][j]=1;
			}else{
				dp[i][j]=dp[i-1][j]+dp[i-1][j-1];
			}
			if(dp[i][j]==n){
				// (a1+an)/2  a1=i,an=i-1,多出来的 + j  
				cout<<i*(i-1)/2+j;
				return 0;
			}
		}
	}
	return 0;
}

9、双向排序

在这里插入图片描述
在这里插入图片描述
直接暴力截决。只能过60%。

#include<iostream>
#include<algorithm>
#include<vector>
#define ll long long
using namespace std;
int n,m;
vector<int> v; 
bool cmp(int a,int b){
	return a>b;
}
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++)v.push_back(i);
	
	for(int i=1;i<=m;i++){
		int p,q;cin>>p>>q;
		if(p==0)sort(v.begin(),v.begin()+q,cmp);
		else sort(v.begin()+q-1,v.end());
	}
	
	for(const auto& x:v)cout<<x<<' ';
	return 0;
}

10、括号序列

在这里插入图片描述
在这里插入图片描述

这题没看懂。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1577109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考-系统集成项目管理中级-新一代信息技术

本章历年考题分值统计 本章重点常考知识点汇总清单(掌握部分可直接理解记忆) 本章历年考题及答案解析 32、2019 年上半年第 23 题 云计算通过网络提供可动态伸缩的廉价计算能力&#xff0c;(23)不属于云计算的特点。 A.虚拟化 B.高可扩展性 C.按需服务 D.优化本地存储 【参考…

软件测试经典面试题:如何测微信的朋友圈?

这是一道非常经典的面试题&#xff0c;相信很多小伙伴在面试中都被面试官问到过这个问题&#xff0c;想要回答好这个面试题&#xff0c;我们首先要搞清楚面试官在考察候选者什么方向测试技能。其实不难猜出&#xff0c;面试官主要是想考察候选者测试用例设计能力。一般会从以下…

【游戏逆向】逆向基础之发包函数和线程发包

网络游戏是需要服务器的&#xff0c;这样才能玩家之间&#xff0c;服务器和玩家之间进行通信。 所以&#xff0c;我们的很多动作&#xff0c;都是要向服务器发包的&#xff0c;那么我们只要能够锁定正确的发包函数&#xff0c;就能很容易的通过调用关系找到该动作的函数&…

Springboot整合tess4j+tesseract实现OCR(文字识别),最新教程!

前言 不用引入什么dll&#xff0c;以及各种乱七八糟的东西。不废话&#xff0c;直接开始教程&#xff01;没有过多讲解里面的知识点&#xff0c;如有需要详细了解请加Qq:1101165230 1、Linux下安装与使用 1.1 安装tesseract&#xff08;复制粘贴敲回车&#xff0c;中间输入Y&…

王权与自由国际服测试资格申请 王权与自由steam国际服预约教程

《王权与自由》是一款由《剑灵》开发商NCsoft公开的旗下大型多人MMORPG新作游戏作品。攻城战&#xff0c;这是游戏中的一个重要玩法&#xff0c;主要分为攻城方和防守方。攻城方需要占领外城的遗址&#xff0c;并利用高轮&#xff08;包括碎石机、跳跃者和战斗航母&#xff09;…

JavaEE初阶之单例模式详解

目录 题外话 正题 单例模式 概念 优点 缺点 饿汉式单例模式 代码及详解 懒汉式单例模式 代码及详解 小结 题外话 昨天爬山去了,回来吃了个烧烤有点累,昨天旷了一天,每周稳定发个五篇文章是没什么太大问题的 正题 单例模式 概念 是一种常见的软件设计模式,确保一个类…

2024/4/2—力扣—栈的最小值

代码实现&#xff1a; typedef struct node {int val;struct node *next; } Node;typedef struct {struct node *top;int min; } MinStack;/** initialize your data structure here. */MinStack* minStackCreate() {MinStack *obj malloc(sizeof(*obj));obj->top NULL;ob…

ArcGIS Server 安装教程

​​​​​​​ 一、环境与文件准备 1.软件环境 已安装arcgis Desktop 10.2 2.安装及授权文件 二、安装步骤 1.下载安装包和授权文件&#xff0c;解压后打开ArcGIS Server10.2文件夹&#xff0c;打开ESRI.exe。 2.点击ArcGIS for Server后的Setup&#xff0c;开始安装。 3.…

scratch绘制六芒星图 2024年3月中国电子学会 图形化编程 scratch编程等级考试二级真题和答案解析

目录 scratch绘制六芒星图 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、实现流程 1、案例分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 …

[C++][算法基础]模拟堆(堆)

维护一个集合&#xff0c;初始时集合为空&#xff0c;支持如下几种操作&#xff1a; I x&#xff0c;插入一个数 x&#xff1b;PM&#xff0c;输出当前集合中的最小值&#xff1b;DM&#xff0c;删除当前集合中的最小值&#xff08;数据保证此时的最小值唯一&#xff09;&…

基于springboot的充电桩管理系统 (含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的充电桩管理系统1拥有三种角色&#xff1a;管理员、用户和维修人员 管理员&#xff1a;用户管理、充电桩管理、报修管理、类别管理、充电常识管理等 维修人员&#xff…

网易邮箱删除指定邮箱

一、 背景&#xff1a; 我们平时经常会收到很多恶意或者一些不重要的邮件&#xff0c;并且经常会堆满邮箱&#xff0c;导致看邮箱的时间一堆未读邮件&#xff0c;手动删除一些不重要的邮件需要一个一个的去点击&#xff0c;并且还要去判断是指定的发件人的邮件&#xff0c;像…

解决Xshell连接不上虚拟机

相信有很多同学和我一样遇到这个问题&#xff0c;在网上看了很多教程基本上都先让在虚拟机输入ifconfig命令查看ip地址&#xff0c;弄来弄去最后还是解决不了&#x1f62d;&#x1f62d;&#xff0c;其实问题根本就不在命令上&#xff0c;很大概率是我们的虚拟机没有开启网卡&a…

2024/4/2—力扣—最小高度树

代码实现&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ struct TreeNode* buildTree(int *nums, int l, int r) {if (l > r) {return NULL; // 递归出口}struct…

【SpringBoot整合系列】SpringBoot整合FastDFS(一)

目录 FastDFSFastDFS特点相关概念的介绍Tracker ServerStorage Server FastDFS环境搭建【CentOS 7】环境准备安装gcc和libevent上传安装包安装libfastcommon安装FastDFS拷贝配置文件到指定位置tracker配置storage配置client测试上传文件安装fastdfs-nginx-module模块到nginx第一…

9.java openCV4.x 入门-特殊的Mat类汇总(一)

专栏简介 &#x1f492;个人主页 &#x1f4f0;专栏目录 点击上方查看更多内容 &#x1f4d6;心灵鸡汤&#x1f4d6;我们唯一拥有的就是今天&#xff0c;唯一能把握的也是今天建议把本文当作笔记来看&#xff0c;据说专栏目录里面有相应视频&#x1f92b; &#x1f9ed;文…

dubbo知识点

为什么要用 Dubbo&#xff1f; 随着服务化的进一步发展&#xff0c;服务越来越多&#xff0c;服务之间的调用和依赖关系也越来越复杂&#xff0c;诞生了面向服务的架构体系(SOA)&#xff0c;也因此衍生出了一系列相应的技术&#xff0c;如对服务提供、服务调用、连接处理、通信…

嵌入式Linux驱动开发——汇编点灯

嵌入式Linux驱动开发——汇编点灯 本文章开始记录学习嵌入式Linux的过程&#xff0c;使用的开发板是正点原子的阿尔法&#xff0c;以及左老师的书籍和视频。然后这个系列不会介绍基础知识&#xff08;书上都有&#xff09;&#xff0c;主要是记录思考过程以及需要注意的点。 代…

《深入浅出多模态》:多模态经典模型CLIP

🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于 前沿论文解读、资料共享、行业最新动态以、实践教程、求职…

淘宝天猫详情接口API:打造个性化购物体验

在数字时代的购物领域&#xff0c;个性化体验成为了各大电商平台竞争的核心。随着互联网和大数据技术的快速发展&#xff0c;淘宝天猫作为中国最大的电商平台&#xff0c;不断推出创新的功能和工具&#xff0c;联讯数据为用户提供个性化购物服务。其中&#xff0c;淘宝天猫详情…