第十二届蓝桥杯真题做题笔记

news2025/2/24 17:29:32

2、卡片

笔记:

直接巧用排列组合求解即可:

我们通过对样例说明进行分析可知:想要分给n个小孩,那么我们就需要满足C(K, 2) + K >= n才能满足。

#include<bits/stdc++.h>
using namespace std;

int com(int up, int down){
	if(up > down)	return 0;
	if(up == down)	return 0;
	int res = 1;
	for(int i = 1; i <= up; i++){
		res = res * (down - i + 1) / i;
	}
	return res;
}

int main(){
	int n;
	cin >> n;
	int down = 2;
	while(com(2, down) + down < n){
		down++;
	} 
	cout << down << endl;
	return 0;
}

4、货物摆放:

题目:

小蓝有一个超大的仓库,可以摆放很多货物。

现在,小蓝有 n 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。

小蓝希望所有的货物最终摆成一个大的长方体。即在长、宽、高的方向上分别堆 L、W、H 的货物,满足 n = L×W×H。

给定 n,请问有多少种堆放货物的方案满足要求。

例如,当 n = 4 时,有以下 6种方案:1×1×4、1×2×2、1×4×1、2×1×2、2 × 2 × 1、4 × 1 × 1

请问,当 n = 2021041820210418(注意有 16 位数字)时,总共有多少种方案?
 

笔记:

这道题三重暴力循环会超时,因为n太大了,所以我们需要将预处理数据的大小压缩一下,因为n = l * h * w,所以我们可以只求l,h,w的组合,为了不在从0开始一个一个得去找找三个符合的数,我们可以直接去获取n的所有因子的数列,再从这个数列中去找到符合的l,h,w的值。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll; 
vector<ll> res(1e7, 0);
ll n = 2021041820210418;
int main(){
	ll index = 0;
	for(ll i = 1; i <= sqrt(n); i++){
		if(n % i == 0){
			res[index++] = i;
			if(i * i != n){
				res[index++] = n / i;
			}
		}
	}
	res.resize(index + 1);
	ll count = 0;
	for(ll l = 0; l < res.size(); l++){
		for(ll h = 0; h < res.size(); h++){
			for(ll w = 0; w < res.size(); w++){
				if(res[l] * res[h] * res[w] == n){
					count++;
				}
			}
		}
	}
	cout << count;
	
	
	return 0;
}

3、直线

题目:

在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上, 那么这些点中任意两点确定的直线是同一条。

给定平面上 2 × 3 个整点(�,�)∣0≤�<2,0≤�<3,�∈�,�∈�(x,y)∣0≤x<2,0≤y<3,x∈Z,y∈Z​,即横坐标 是 00 到 11 (包含 0 和 1) 之间的整数、纵坐标是 0 到 2 (包含 0 和 2) 之间的整数 的点。这些点一共确定了 11 条不同的直线。

给定平面上 20×2120×21 个整点 (�,�)∣0≤�<20,0≤�<21,�∈�,�∈�(x,y)∣0≤x<20,0≤y<21,x∈Z,y∈Z,即横 坐标是 00 到 1919 (包含 00 和 1919) 之间的整数、纵坐标是 00 到 2020 (包含 00 和 2020​) 之 间的整数的点。

请问这些点一共确定了多少条不同的直线。

笔记:

这道题我们就遵循一个原则:两点确定一条直线,我们只需要找到斜率是独一无二的直线即可,有公式y = k*x + b我们可以获取两点连成直线的斜率以及b,接着就暴力搜索出符合的(k, b),这里我们需要注意的是要对这些组合进行去重,我们可以使用set容器来去重,最后我们还需要注意:还存在斜率不存在的直线也就是平行于x轴的直线,最后就是将set容器的大小再加上这些平行于x轴的直线的数组即可。

#include<bits/stdc++.h>
using namespace std;

set<pair<double, double> > st;
int main(){
	for(int x1 = 0; x1 < 21; x1++){
		for(int y1 = 0; y1 < 20; y1++){
			for(int x2 = x1 + 1; x2 < 21; x2++){
				for(int y2 = 0; y2 < 20; y2++){
					double k = (double)(y1 - y2) / (x1 - x2);
					double b = (double)(x1 * y2 - x2 * y1) / (x1 - x2);
					st.insert(make_pair(k, b));
				}
			}
		}
	}
	cout << st.size() + 21;
	return 0;
}

7、砝码称重:

题目:

你有一架天平和 �N 个砝码,这 �N 个砝码重量依次是 �1,�2,⋅⋅⋅,��W1​,W2​,⋅⋅⋅,WN​。

请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边。

输入格式

输入的第一行包含一个整数 �N。

第二行包含 �N 个整数:�1,�2,�3,⋅⋅⋅,��W1​,W2​,W3​,⋅⋅⋅,WN​。

输出格式

输出一个整数代表答案。

样例输入

3
1 4 6

样例输出

10

样例说明

能称出的 1010 种重量是:1、2、3、4、5、6、7、9、10、111、2、3、4、5、6、7、9、10、11​。

1=1;1=1;

2=6−4(2=6−4(天平一边放 66,另一边放 4);4);​

3=4−1;3=4−1;

4=4;4=4;

5=6−1;5=6−1;​

6=6;6=6;

7=1+6;7=1+6;

9=4+6−1;9=4+6−1;

10=4+6;10=4+6;

11=1+4+6。11=1+4+6。

笔记:

这道题可以采用bfs的思想与背包思想相结合:

我们在这里将dp数组设为:前i个元素能否凑成j的bool值,将dp[0][0]初始化为0,接着然后我们遍历dp数组,如果dp[i - 1][j] = true呢么i个元素也一定可以凑成j,所以dp[i][j] = true,然后开始扩散:dp[i][j + nums[i]] = true,dp[i][j - nums[i]] = true,dp[i][nums[i] - j] = true;

扩散完一遍,我们就可以对数组进行检查,如果dp[i][j] = true那么就count ++。

有几点需要注意的是:

(1)这里我们在输入nums数组的时候不可以从0开始加入元素,因为为了符合后续dp数组的遍历:i表示前i个元素,所以我们的nums数组要从1开始。

(2)在dp数组中进行遍历搜索的时候我们无需提前判断当前dp[i][j]是否为false,因为我们是符合了bfs一层一层向外扩散,所以我们不单单是对fasle的dp元素进行判断处理,对true的dp元素也一样要判断处理。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n;
	cin >> n;
	vector<int> nums(n + 1, 0);
	int sum = 0;
	int count = 0;
	for(int i = 1; i <= n; i++){
		cin >> nums[i];
		sum += nums[i];
	}
	vector<vector<bool> > dp(n + 1, vector<bool>(sum + 1, false));
	dp[0][0] = true;// 前i中元素是否能够凑成j 
	for(int i = 1; i <= n; i++){
		for(int j = 0; j <= sum; j++){
			if(dp[i][j] == false){
				if(dp[i - 1][j] == true){
					dp[i][j] = true;
					dp[i][j + nums[i]] = true; // 会略过nums[0]的情况。 
					if(j > nums[i]){
						dp[i][j - nums[i]] = true;
					}else{
						dp[i][nums[i] - j] = true;
					}
				}
			}
		}
	}
	for(int j = 1; j <= sum; j++){
		if(dp[n][j])	count++;
	}
	cout << count;
	
	return 0;
}

10、括号序列:

题目:

笔记:

(1)首先明确dp数组含义:

dp[ i ][ j ]:表示第i个右括号前添加j个左括号的组合数。

(2)状态转移方程:

dp[ i ][ j ] = dp[ i - 1 ][ 0 ] + ......... + dp[ i - 1 ][ j ]:

也就是i-1号有括号前加0个左括号,i - 1号右括号到i好有括号之间加j个左括号 到i - 1号有括号前加j个左括号, i- 1号右括号到i号右括号之间加0个左括号。

通过对上面状态转移方程的进一步分析我们就可以发现并不能从0开始遍历,我们的i的遍历范围是从第一个到第n个,那我们j的遍历范围就应该是从(i  - suml(前面剩余的左括号的数量) -----  j)也就是目的是让前面的合法。

(3)初始化:

按照我们定义的含义来分析:首先看第一个右括号前面我们如没有剩余的左括号,那么添加1 - j的左括号的方案数都为1,若果有剩余左括号那么前面添加0个左括号的方案数为1。

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

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

相关文章

从文字到思维:呆马GPT在人工智能领域的创新之旅

引言 生成式预训练变换器&#xff08;Generative Pre-trained Transformer&#xff0c;简称GPT&#xff09;领域是人工智能技术中的一大革新。自OpenAI推出第一代GPT以来&#xff0c;该技术经历了多代发展&#xff0c;不断提升模型的规模、复杂度和智能化程度。GPT模型通过在大…

AI大模型日报#0411:国内首款音乐大模型、面壁智能数亿融资、MyScale AI开源

导读&#xff1a; 欢迎阅读《AI大模型日报》&#xff0c;内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。 ​标题: 大模型做时序预测也很强&#xff01;华人团队激活LLM新能力&#xff0c;超越一众传统模型实现SOTA 摘要: 大语言模型通过新提…

从零开始学Spring Boot系列-集成MyBatis-Plus

在Spring Boot应用开发中&#xff0c;MyBatis-Plus是一个强大且易于使用的MyBatis增强工具&#xff0c;它提供了很多实用的功能&#xff0c;如代码生成器、条件构造器、分页插件等&#xff0c;极大地简化了MyBatis的使用和配置。本篇文章将指导大家如何在Spring Boot项目中集成…

git学习 1

打开自己想要存放git仓库的文件夹&#xff0c;右键打开git bush&#xff0c;用git init命令建立仓库 用 ls -a(表示全都要看&#xff0c;包括隐藏的)可以看到git仓库 也可以用 git clone 接github链接&#xff08;点code选项里面会给链接&#xff0c;结尾是git的那个&#xf…

如何用Java后端处理JS.XHR请求

Touching searching engine destroies dream to utilize php in tomcat vector.The brave isn’t knocked down&#xff0c;turn its path to java back-end. Java Servlet Bible schematic of interaction between JS front-end and Java back-end Question 如何利用Java…

自动驾驶定位算法-粒子滤波(Particle Filter)

自动驾驶定位算法-粒子滤波(Particle Filter) 自动驾驶对定位的精度的要求在厘米级的&#xff0c;如何实现厘米级的高精度定位呢&#xff1f;一种众所周知的定位方法是利用全球定位系统(GPS)&#xff0c;利用多颗卫星的测量结果&#xff0c;通过三角测量(Triangulation)机制确…

【Web】NSSRound#1-20 Basic 刷题记录(全)

目录 [NSSRound#1 Basic]basic_check [NSSRound#1 Basic]sql_by_sql [NSSCTF 2nd]php签到 [NSSCTF 2nd]MyBox [NSSCTF 2nd]MyBox(revenge) [NSSCTF 2nd]MyHurricane [NSSCTF 2nd]MyJs [NSSRound#3 Team]This1sMysql [NSSRound#3 Team]path_by_path [NSSRound#…

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅱ)搜索及数据获取配置项

搜索及数据获取配置项 搜索及数据获取配置项属性&#xff1a; noSearchModel&#xff08;无表单搜索标识&#xff09;属性&#xff1a;changeToSearch&#xff08;表单change事件是否触发搜索 &#xff09;属性&#xff1a; changeParams&#xff08;参数预处理【可异步】 &…

游戏行业科普 (二)游戏是怎么做出来,怎么卖出去的?

游戏行业科普系列文章&#xff0c;大家可以关注起来&#xff0c;等我慢慢芬分享~~ 《蛋仔派对》 一、研运流程--游戏是怎么做出来的 一款游戏的开发和运营大体上可以分为预研立项、设计开发、测试调优、发行上线和成熟运营几个阶段。 1&#xff09;预研立项&#xff1a; 初始研…

Lumos学习王佩丰Excel第二讲:单元格格式设置

今天学会GIF录制了&#xff0c;分享知识会更简便一些&#xff0c;话不多说&#xff0c;开始吧~ 一、美化表格 1、设置单元格格式的路径 从菜单栏进入&#xff1a; 选中区域&#xff08;单元格&#xff09;- 右键“设置单元格格式”&#xff1a; 2、合并单元格 合并一行 批量…

SpringCloudAlibaba之nacos的服务注册与发现

Nacos的服务注册与发现 照例放个妹子 本章节讲解nacos的服务注册与发现的简单使用 如图所示&#xff1a;按照图示搭建一个nacos作为服务注册中心的简单应用 创建provider服务提供者 创建nacos-discovery-provider模块引入依赖 <dependencies><dependency><…

【vue-qrcode + html2canvas】前端二维码生成与下载

一、前言 其实一开始搜的时候&#xff0c;很多还都是推荐的 vue-qrcode&#xff0c;于是就先用这个&#xff0c;但是发现想要在二维码中间放一个自定义的image的时候&#xff0c;这个库有点麻烦&#xff0c;需要自己将 image 图片盖在二维码上面&#xff08;官方教程也是如此&…

从0到1实现RPC | 09 故障隔离与恢复

一、应用场景 故障隔离解决的是&#xff1a;当服务提供者provider出现异常时&#xff0c;消费者consumer就不再调用异常实例&#xff0c;而是选择好的实例&#xff0c;避免频繁出错。 故障恢复解决的是&#xff1a;一段时间过后&#xff0c;服务提供者provider可以正常提供服…

AWS游戏全球智能翻译,助力企业出海

随着全球数字化时代的到来&#xff0c;游戏行业已经成为跨越国界、语言和文化的强大力量。然而&#xff0c;要将游戏产品成功推向全球市场并确保用户体验的流畅与愉悦&#xff0c;语言障碍却是一道不可忽视的挑战。在这个多元化的世界中&#xff0c;如何解决语言障碍&#xff0…

openGauss学习笔记-260 openGauss性能调优-使用Plan Hint进行调优-同层参数化路径的Hint

文章目录 openGauss学习笔记-260 openGauss性能调优-使用Plan Hint进行调优-同层参数化路径的Hint260.1 功能描述260.2 语法格式260.3 示例 openGauss学习笔记-260 openGauss性能调优-使用Plan Hint进行调优-同层参数化路径的Hint 260.1 功能描述 通过predpush_same_level Hi…

学习C++有没有必要学习boost库?

在深入学习C这一强大且灵活的编程语言的过程中&#xff0c;是否有必要学习Boost库是许多开发者会面临的一个重要问题。Boost库&#xff0c;被誉为C的“瑞士军刀”&#xff0c;以其丰富的工具集和强大的功能性深受广大C程序员的喜爱。本文将就此问题进行详细的探讨。 一、Boost…

关于ABP 新增表,dbfirst模式

下面的代码是基于abp生成的项目&#xff0c;项目名&#xff1a;Store 1.在Domain结尾的项目中通过EF工具生成数据实体&#xff1a; Scaffold-DbContext Data Source服务器IP;Initial Catalog数据库;User Idsa;Password密码;EncryptFalse; Microsoft.EntityFrameworkCore.SqlS…

【论文精读】 GPT,GPT-2,GPT-3:大力出奇迹

系列文章目录 【论文精读】Transformer&#xff1a;Attention Is All You Need 【论文精读】BERT&#xff1a;Pre-training of Deep Bidirectional Transformers for Language Understanding 文章目录 系列文章目录一、前言二、GPT&#xff08;一&#xff09;文章概览&#xf…

19c数据库/dev/shm/过小导致pga内存不够

pga_aggregate_limit已经设置了120G&#xff0c;alert还是报内存不够 查询select * from v$pgastat&#xff0c;发现MGA占了80G内存 查看/dev/shm: 发现设置了7G&#xff0c;操作系统是512G&#xff0c;正常情况下/dev/shm应该是操作系统的一半&#xff0c;修改为250G后数据库…

小米温度计接入HA后,手机米家app里温度计就看不到温度数值了

环境&#xff1a; 小米温度计 HA OS Core 2023.12.1 Supervisor 2024.04.0 Operating System 11.1 问题描述&#xff1a; 小米温度计接入HA后&#xff0c;手机米家app里和HA里面温度计就看不到温度数值了 解决方案&#xff1a; 1.前往米家APP&#xff0c;解绑温度计和本地…