第十四届蓝桥杯c++研究生组

A
在这里插入图片描述
关键思路是求每个十进制数的数字以及怎么在一个数组中让判断所有的数字次数相等。
求每个十进制的数字

while(n!=0){
		int x = n%10;//x获取了n的每一个位数字
		n/=10;
	}

扩展:求二进制的每位数字 (注意:进制转换、1的个数、位运算)

x >> k & 1//k代表第几个位置

判断几个数中的数字次数相等
下面是判断3个数中的数字次数相等

bool swap(int n,int i,int j){
	int a[]={0,0,0,0,0,0,0,0,0,0};
	while(n!=0){
		int x = n%10;
		a[x]++;
		n/=10;
	}
	while(i!=0){
		int x = i%10;
		a[x]--;
		i/=10;
	}
	while(j!=0){
		int x = j%10;
		a[x]--;
		j/=10;
	}
	for(int i=0;i<=9;i++){
		if(a[i]!=0){
			return false;
		}
	}
	return true;
}

完整代码:

#include <iostream>
#include <cmath>
using namespace std;

bool swap(int n,int i,int j){
	int a[]={0,0,0,0,0,0,0,0,0,0};
	while(n!=0){
		int x = n%10;
		a[x]++;
		n/=10;
	}
	while(i!=0){
		int x = i%10;
		a[x]--;
		i/=10;
	}
	while(j!=0){
		int x = j%10;
		a[x]--;
		j/=10;
	}
	for(int i=0;i<=9;i++){
		if(a[i]!=0){
			return false;
		}
	}
	return true;
}

bool is(int n){
	for(int i=2;i<=sqrt(n)+1;i++){
		if(n%i==0){
			int j = n/i;
			if(swap(n,i,j)){
				return true;
			}
		} 
	}
	return false;
}  


int main(){
	int sum=0;
	for(int i=1;i<=1000000;i++){
		if(is(i)){
			sum++;
		}
	}
	cout << sum << endl;
	return 0;
}

B
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
爆搜

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

int a[][20]={
	{1,1,0,1,0,1,1,1,1,1},
	{1,1,1,0,0,1,1,1,1,0},
	{1,1,0,0,1,0,1,1,1,1},
	{1,0,1,1,0,1,1,1,1,0},
	{1,0,1,0,1,1,1,1,0,0},
	{1,0,0,1,0,1,0,1,0,1},
	{1,1,1,1,1,1,1,1,1,0},
	{0,1,1,1,1,1,1,1,1,0},
	{0,1,1,0,1,0,1,1,1,1},
	{1,0,1,0,0,1,0,1,0,0},
};
map<int, int> mp;
int ans;

int main(){
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			if(a[i][j]==0){
				continue;
			}
			for(int k=i+1;k<10;k++){
				for(int p=0;p<=j;p++){
					if(a[k][p]==0){
						continue;
					}
					if (a[k + j - p][p + k - i] == 1 && a[i + j - p][j + k - i] == 1){
            			int len = (j - p) * (j - p) + (k - i) * (k - i);
                        if (mp[len] == 0) {
              				ans++; 
							mp[len] = 1;
                    	}
          			}
				}
			}
		}
	}
	cout << ans; 
	return 0;
} 

扩展map的用法
map容器是一个键值对key—value的映射,其内部实现是一颗以key为关键吗的红黑树。mapkeyvalue可以是任意类型,其中key必须定义小于号运算符。
map的声明

map<key_type,value_type> name;
//列子
map<int int> mp;
map<string,int> mp;

方法
size/empty/clear/begin/end/insert/erase/find/[]
C
在这里插入图片描述
求每个数的位的数字。详细见A题。注意数据范围

#include <iostream>
#include <algorithm>

using namespace std;

long long n,sum;

int main(){
	cin >> n;
	while(n>0){
		long long x=n;
		while(x!=0){
			int aa=x%10;
			n-=aa;
			x/=10;
		}
		sum++; 
	}
	cout << sum <<endl;
	return 0;
}

D
在这里插入图片描述
**最初思路:**遍历从L到R,但是如果随机遍历每个L到R中的每个数,最后得到的最小移动数是不一样。即行不通。
解题思路:
分三种情况:

  1. n<l时。不用移动,输出0.
  2. n>=l&&n<=r时。即考虑移动l-1的步数和移动到r右边的符合条件之间的最小数。
  3. n>r时。即往左右移动找符合最小移动的步数。
    完整代码
#include <bits/stdc++.h>

using namespace std;

long long n,l,r;
long long ans;

bool check(int x){
	for(int i=1;i<=sqrt(x);i++){
		if(x%i==0){
			int t = x/i;
			if(i>=l && i<=r){
				return true;
			}
			if(t>=l && t<=r){
				return true;
			}
		}
	}
	return  false;
}

int main(){
	cin >> n >> l >> r;
	if(n<l){
		cout << 0 << endl;
		return 0;
	}
	if(n>=l&&n<=r){
		ans = n-(l-1);
		for(int i=1;i<=2000;i++){
			if(!check(r+i)){
				ans = min(r+i-n,ans);
				break;
			}
		}
		cout << ans <<endl;
		return 0;
	}
	for(int i=1;i<=2000;i++){
		if(!check(n+i) || !check(n-i)){
			cout << i << endl;
			return 0;
		}
	}
	return 0;
}

//5/29完工

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单元测试的实现方式

单元测试的实现方式包括&#xff1a;人工静态检查、动态执行跟踪 人工静态检查 人工静态检查是一种单元测试实现方式&#xff0c;它主要依赖开发人员的人工代码审查和静态分析工具来识别潜在的代码问题。 代码审查&#xff1a;开发人员通过仔细检查代码来发现潜在的问题。他…

Warning: Each child in a list should have a unique “key“ prop.

问题描述&#xff1a; 使用ProTable的时候&#xff0c;报错如下 原因分析&#xff1a; 根据报错内容可以分析出&#xff0c;表格数据缺少唯一key&#xff0c; <PaginationTablecolumns{columns}pagination{{pageSize: 10,current: 1,showSizeChanger: true,showQuickJum…

最新!!2024年上半年软考【中级软件设计师】综合知识真题解析

2024上半年软考考试已经结束了&#xff0c;为大家整理了网友回忆版的软件设计师真题及答案&#xff0c;总共30道题。 上半年考试的宝子们可以对答案预估分数&#xff01;准备下半年考的宝子可以提前把握考试知识点和出题方向&#xff0c;说不定会遇到相同考点的题目&#xff01…

rk3568_semaphore

文章目录 前言1 什么是信号量1.1 信号量API函数2、信号量实验2.1 实验目的2.2函数源码2.3 运行结果图前言 本文记录rk3568开发板的信号量实验 1 什么是信号量 信号量是同步的一种方式,常常用于控制对共享资源的访问。 举个例子:停车场的停车位有100个,这100个停车位就是共…

代码模板,Cookie和Session

目录 代码模板 Cookie的基本使用 概念 Cookie的API public Cookie(String name, String value) 发送Cookie对象到客户端&#xff1a;使用response对象 创建Cookie对象并响应给浏览器 在服务器后端获取Cookie对象 Cookie[]cookiesrequset.getCookies(); Cookie的使用细…

牛!华为《Linux 面试笔记大全》太赞了,完整版PDF 开放下载!

在QQ和微信社群中&#xff0c;我注意到许多人都在寻找一份全面的Linux学习资料。因此&#xff0c;我在这里为大家整理和分类了相关的信息&#xff0c;可以看作是对重点内容的梳理和归纳。 这份《Linux面试笔记》主要分为三大部分&#xff1a;基础篇-进阶篇-高级篇 本书笔记针…

Linux主机连接腾讯云服务器详细配置

硬件条件 当然你要先有一个云服务器&#xff0c;腾讯云比阿里云便宜一点&#xff0c;所以就用腾讯云了 问了师兄买这个98的就行&#xff0c;选择CentOS&#xff0c;不要选Ubuntu&#xff0c;因为 嗯&#xff0c;大概就是这样 编程测试 云服务器当然是作为服务端 server.cpp…

蓝桥杯备赛——DP续【python】

一、小明的背包2 试题链接&#xff1a;https://www.lanqiao.cn/problems/1175/learning/ 输入示例 5 20 1 6 2 5 3 8 5 15 3 3 输出示例 120 问题分析 这题是完全背包&#xff0c;每个物品有无数个&#xff0c;所以对于任意dp[i][j]&#xff08;其表示的意思为选到第i个…

18 - grace数据处理 - 补充 - 地下水储量计算过程分解 - 地表水储量变化Glads水文数据处理

18 - grace数据处理 - 补充 - 地下水储量计算过程分解 - 地表水储量变化 0 引言1 Grace陆地水储量过程整合0 引言 由水量平衡方程可以将地下水储量的计算过程分解为3个部分,第一部分计算陆地水储量变化、第二部分计算地表水储量变化、第三部分计算地下水储量变化。本篇简单介绍…

前端Vue小兔鲜儿电商项目实战Day01

一、项目介绍 1. 项目技术栈 2. 项目规模 3. 项目亮点 4. 课程安排 5. 适合人群 二、Vue3组合式API体验 1. 通过一个Counter案例体验Vue3新引入的组合式API ①Vue2的代码 <template><button click"addCount"> {{ count }}</button> </templ…

嵌入式C语言指针详细解说

各位伙伴大家好,在实现操作系统的控制的时候,经常需要使用到指针,利用这次详细分析一下指针的用法。 C语言指针真正精髓的地方在于指针可以进行加减法,这一点极大的提升了程序对指针使用的灵活性,同时也带来了不小的学习负担。正是因为C语言指针可运算,才奠定了如今C语言…

SQL数据分析常用函数

SQL 中有许多常用的函数&#xff0c;可以用于处理和操作数据。以下是一些常见的SQL 函数&#xff1a; 1. 字符串函数&#xff1a; CONCAT(str1, str2, …): 用于把多个文本字符串合并成一个长字符串(参数中有null时返回null)。 select concat(一起,学, SQL); -- 输出结果:一…

基于朴素贝叶斯算法的微博舆情监控系统,flask后端,可视化丰富

背景&#xff1a; 微博作为中国最大的社交媒体平台之一&#xff0c;汇聚了海量用户生成的文本数据&#xff0c;承载着丰富的社会信息和舆论动向。随着互联网的快速发展&#xff0c;人们对于利用这些数据进行舆情分析和预测的需求日益增加。在这种情况下&#xff0c;以Python为…

汽车电子零部件(14):TMS热管理系统

前言: TMS(thermal management system)热管理系统,这是新能源汽车诞生后随之而产生的一种新汽车零部件,一旦热管理失控会触发自燃,这种现象也是对EV来说是件头疼的事。汽车的热管理系统(TMS)是一个关键部件,有助于调节汽车电池组、车厢和其他车辆系统的温度。TMS的主要…

遇到了导师放养,该怎么坚持?

最近收到学生读者的留言&#xff0c;抱怨科研的困难。导师忙碌且学生众多&#xff0c;自己只是众多学生之一&#xff0c;常常处于放养状态。除了每周的组会外&#xff0c;几乎无法接触到导师。在这种状态下&#xff0c;缺乏方向和动力&#xff0c;非常担心无法顺利毕业&#xf…

navicat连接过的库忘记密码

1、点击文件->导出连接 2、勾选想要知道密码的库 3、打开导出的文件搜索Password 4、复制Password解密 把下面的php代码复制到在线运行php的网站&#xff0c;替换最下面的decrypt(‘B7246A6E64D4F50A563FA20427A47991’)括号里的内容&#xff0c;然后执行php代码&#xff0…

PHP开发入门

PHP官网&#xff1a;PHP: Hypertext Preprocessor apache官网&#xff1a;https://httpd.apache.org/ 一、搭建PHP环境 下载apache 进入官网点击download 选择下载windows版本文件 点击进入下载界面 点击下载64位版本文件 下载后解压文件 解压文件后进入 D:\httpd-2.4.59-24…

高效写代码java-推荐插件1(格式转化 ConverterX )-日后待更新

ConverterX 主要功能:格式转化 字符串格式转换 日期转换 Json格式转义 字符格式 快捷键 ctrl shiftS Upper(CODEEASE)字符串全部变成大写Lower(codeease)字符串全部变成小写Camel(codeEase)字符串变成小驼峰ClassCaemel(CodeEase)字符串变成大驼峰UnderlineUpper(CODE_EAS…

《TCP/IP网络编程》(第十二章)I/O复用(1)

本章将讨论实现并发服务器的第二种办法&#xff0c;基于I/O复用的服务器端构建。 I/O复用它允许单个进程或线程同时处理多个输入/输出&#xff08;I/O&#xff09;操作&#xff0c;而无需为每个I/O操作创建一个独立的线程或进程。这种技术可以显著提高应用程序的效率和性能&…