第十届蓝桥杯大赛个人赛省赛(软件类) CC++ 研究生组2.0

A立方和

#include<iostream>
#include<cmath>
using namespace std;
int main(){
	int n, t, flag, x;
	long long ans = 0;
	for(int i = 1; i <= 2019; i++){
		t = i;
		flag = 0;
		while(t && !flag){
			x = t % 10;
			if(x == 2 || x == 0 || x == 1 || x == 9) flag = 1;
			t /= 10;
		}
		if(flag) ans += (long long)pow(i, 3);
	}
	printf("%lld", ans);//4097482414389
	return 0;
}

打卡题

B字串数字

#include<iostream>
#include<string>
using namespace std;
int main(){
	string s = "LANQIAO";
//	string s = "LQ";
	long long power = 1, ans = 0;
	for(int i = s.size() - 1; i >= 0; i--){
		ans += (s[i] - 'A' + 1) * power;
		power *= 26;
	}
	printf("%lld", ans);//3725573269
	return 0;
}

进制转换

C质数

#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
bool isPrime(ll n){
	ll sqr = sqrt(n);
	for(int i = 2; i <= sqr; i++){
		if(n % i == 0) return false;
	}
	return true;
}
int main(){
	ll x = 2, cnt = 0, ans;
	while(cnt < 2019){
		if(isPrime(x)){
			cnt++;
			ans = x;
		}
		x++;
	}
	printf("%lld", ans);//17569
	return 0;
}

类似于质数打表

D最短路

6
在这里插入图片描述


适当手算,灵活些

E RSA解密

没思路
尝试先把p,q试出来

#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
int main(){
	ll n = 1001733993063167141LL, sqr = sqrt(n);
	for(ll i = 2; i <= sqr; i++){
		if(n % i == 0){
			printf("%lld ", i);
			if(i * i != n) printf("%lld ", n / i);
		}
	}
	return 0;
}

再试着把e试出来,但太大了不可行

#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
bool isPrime(ll n){
	ll sqr = sqrt(n);
	for(int i = 2; i <= sqr; i++){
		if(n % i == 0) return false;
	}
	return true;
}

ll gcd(ll a, ll b){
	if(!b) return a;
	return gcd(b, a % b);
}
int main(){
	ll p = 891234941LL, q = 1123984201LL, d = 212353, e = 471730557631LL;
	if(isPrime(p)) cout << "p prime" << endl;
	if(isPrime(q)) cout << "q prime" << endl;
	cout << gcd((p-1)* (q-1), d) << endl;
//	cout <<  ((p-1)* (q-1) - 1) / d << endl;
	while((d * e) % ((p-1)* (q-1)) != 1){
		e++;
	}
	cout << e;
	return 0;
}

先鸽一下这题,后续有时间了用python算出来e再说

F 斐波那契额序列与黄金分割

先打印前一百个观察下数据,发现大于等于19后在保留八位小数的基础上就稳定在一个比值,符合提示的趋近于黄金分割。而且当数值过大时,比值会出现负数的情况,显然异常。考虑可能是因为斐波那契额数列增长速度过快,超出了int型范围。才100就超了,给定的n范围更超,索性利用后续在规定的精度内稳定于一个比值,直接打印不再计算。

#include<iostream>
using namespace std;
typedef long long ll;
int main(){
	ll f1 = 1, f2 = 1, f, n;
	
	for(int i = 3; i <= 100; i++){
		f = f1 + f2;
		printf("%d %.8f\n", i - 1, 1.0 * f2 / f);
		f1 = f2;
		f2 = f;
	}
	return 0;
}

在这里插入图片描述
在这里插入图片描述
提交程序为

#include<iostream>
using namespace std;
typedef long long ll;
int main(){
	ll f1 = 1, f2 = 1, f, n;
	scanf("%lld", &n);
	if(n > 20) printf("0.61803399");
	else{
		for(int i = 3; i <= n + 1; i++){
			f = f1 + f2;
			if(i == n + 1)printf("%.8f", 1.0 * f2 / f);
			f1 = f2;
			f2 = f;
		}
	}
	return 0;
}

一个测试点没过,忽略了n==2的情况

#include<iostream>
using namespace std;
typedef long long ll;
int main(){
	ll f1 = 1, f2 = 1, f, n;
	scanf("%lld", &n);
	if(n > 20) printf("0.61803399");
	else{
		for(int i = 2; i < n + 1; i++){
			f = f1 + f2;
			f1 = f2;
			f2 = f;
		}
    	printf("%.8f", 1.0 * f1 / f2);
	}
	return 0;
}

G扫地机器人

不知道如何下手


走廊长度n为105,根据数据范围需要选择nlogn以内的算法。花费时间最短2,最长2*n,考虑二分处理。
在花费时间t内,判断是否能够扫完n个格子。用贪心,尽量让机器人扫其周围的格子且平均得划分。把机器人的位置升序排序,看机器人在时间t内,能够覆盖的右边界能否相互衔接上且最后一个机器人能够覆盖到走廊有边界。

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 1e5 + 10;
int a[maxn], n, k, l, r, mid;

bool judge(int len){
	int r = 0;//上一个机器人能扫到的右边界
	for(int i = 0; i < k; i++){
		if(a[i] - len > r) return false;//不能衔接上,有覆盖不到的区域,则不可行
		else{
			if(a[i] < r) r = a[i] + len - 1;//在上一个机器人可覆盖的区域内
			else r += len;//在边界上 
		} 
	}
	return r >= n; 
}

int main(){
	scanf("%d%d", &n, &k);
	for(int i = 0; i < k; i++){
		scanf("%d", a + i);
	}
	sort(a, a + k);
	l = 0;
	r = n;
	while(l < r){
		mid = (l + r) / 2;
		if(judge(mid)) r = mid;//当前可行,尝试更短 
		else l = mid + 1;	//当前不可行,增加时间 
	}
	printf("%d", 2 * (l - 1)); 
	return 0;
}

H修改数组

#include<iostream>
using namespace std;
const int maxn = 1e5 + 10, maxv = 1e6 + 1e5;
int a[maxn], flag[maxv] = {0};
int main(){
	int n;
	scanf("%d", &n);
	for(int i = 0; i < n; i++){
		scanf("%d", a + i);
		if(!flag[a[i]]) flag[a[i]] = 1;
		else {
			a[i] += flag[a[i]];
			while(flag[a[i]]) a[i]++;
			flag[a[i]]++;
		}
	}
	for(int i = 0; i < n; i++){
		printf("%d ", a[i]);
	}
	return 0;
}

两个测试点超时
没有充分利用flag的出现次数,还是一个个的跳且没有正确累加后续的出现次数

#include<iostream>
using namespace std;
const int maxn = 1e5 + 10, maxv = 1e6 + 1e5;
int a[maxn], flag[maxv] = {0};
int main(){
	int n, t;
	scanf("%d", &n);
	for(int i = 0; i < n; i++){
		scanf("%d", a + i);
		while(flag[a[i]]){
	      t = a[i];
	      a[i] += flag[t];
	      flag[t]++;
	    }
	    flag[a[i]] = 1;
	}
	for(int i = 0; i < n; i++){
		printf("%d ", a[i]);
	}
	return 0;
}

I 灵能传输

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 3e5 + 10;
int a[maxn];
int main(){
	int t, n, flag, x, p, temp;
	scanf("%d", &t);
	while(t--){
		scanf("%d", &n);
		for(int i = 0; i < n; i++){
			scanf("%d", a + i);
		}
		flag = 1;
		while(flag){
			x = abs(a[0]);
			p = 0;
			for(int i = 1; i < n; i++){
				if(abs(a[i]) > x){
					x = abs(a[i]);
					p = i;
				}
			}
			if(x == 0) flag = 1;
			if(p == 0) p++;
			else if(p == n - 1) p--;
			temp = max(max(abs(a[p - 1] + a[p]), abs(a[p + 1] + a[p])), abs(a[p]));
			if(temp >= x) flag = 0;
			else{
				a[p - 1] += a[p];
				a[p + 1] += a[p];
				a[p] = -a[p];
			}
		}
		printf("%d\n", x);
	}
	return 0;
} 

骗了四个测试点的分。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef long long ll;
int main(){
	int n, t;
	scanf("%d", &t);
	while(t--){
		ll x, ansX = 0;
		scanf("%d", &n);
		vector<ll> sum(n + 1, 0);
		vector<ll> visit(n + 1, 0);
		vector<ll> ans(n + 1, 0); 
		for(int i = 1; i <= n; i++){
			scanf("%lld", &x);
			sum[i] = sum[i - 1] + x;
		}
		ll l = sum[0], r = sum[n], lp = 0, rp = n, ansL = 0, ansR = n;//首位项的值
		if(l > r) swap(l, r);
		sort(sum.begin(), sum.end());
		for(int i = 0; i < n; i++){
			if(sum[i] == l){
				lp = i;
				break;
			}
		}
		for(int i = 0; i < n; i++){
			if(sum[i] == r){
				rp = i;
				break;
			}
		}
		for(int i = rp; i <= n; i += 2){//填充结果数组 
			ans[ansR--] = sum[i];
			visit[i] = 1; 
		}
		for(int i = lp; i >= 0; i -= 2){
			ans[ansL++] = sum[i];
			visit[i] = 1;
		}
		for(int i = 0; i <= n; i++){
			if(!visit[i]) ans[ansL++] = sum[i];
		}
		for(int i = 1; i <= n; i++){
			if(abs(ans[i] - ans[i - 1]) > ansX) ansX = abs(ans[i] - ans[i - 1]);
		}
		printf("%lld\n", ansX);
	}
	return 0;
}

J空间跳跃

题干看起来好麻烦,蒟蒻不想做了

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

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

相关文章

基于圆柱体镜子和光线跟踪实现镜反射观测全景观图的matlab模拟仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 光线与圆柱镜面的交点计算&#xff1a; 反射光线计算&#xff1a; 全景图坐标转换&#xff1a; 5.完整程序 1.程序功能描述 基于圆柱体镜子和光线跟踪实现镜反射观测全景观图.模拟的场景…

ISTQB选择国内版,还是国际版呢

1, ISTQB简介 ISTQB&#xff08;International Software Testing Qualifications Board&#xff09;是一个国际软件测试资格认证机构&#xff0c;旨在提供一个统一的软件测试认证标准。ISTQB成立于2002年&#xff0c;是非盈利性的组织&#xff0c;由世界各地的国家或地区软件测…

case语句

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 CASE 语句的执行方式与 IF...THEN...ELSIF 语句的执行方式类似&#xff0c;但是它是通过一个表达式的值来决定执行哪个分支 CASE 选择器表达式 WHEN 条件 1 THEN 语句序列 …

从多模态生物图数据中学习Gene的编码-MuSeGNN

由于数据的异质性&#xff0c;在不同的生物医学背景下发现具有相似功能的基因对基因表示学习提出了重大挑战。在本研究中&#xff0c;作者通过引入一种称为多模态相似性学习图神经网络的新模型来解决这个问题&#xff0c;该模型结合了多模态机器学习和深度图神经网络&#xff0…

Linux gcc day3

find命令&#xff08;importance&#xff09;&#xff1a; 语法&#xff1a;find pathname -options find /root -name test.c which命令&#xff1a; which [指令] 只搜索指令&#xff0c;在什么位置下 为什么文件夹带有颜色呢&#xff1f; 科普补充alias命令&#xff1a; ali…

redis的简单操作

redis中string的操作 安装 下载可视化软件&#xff1a;https://gitee.com/qishibo/AnotherRedisDesktopManager/releases。 Mac安装redis&#xff1a; brew install redisWindows安装redis: 安装包下载地址&#xff1a;https://github.com/tporadowski/redis/releases 1.…

C语言进阶课程学习记录-第20课 - 链接过程简介

C语言进阶课程学习记录-第20课 - 链接过程简介 链接器静态链接实验-静态链接源代码生成目标文件打包生成静态库文件直接编译使用静态库编译 动态链接实验-动态链接源代码生成动态链接库文件直接编译使用动态链接库编译运行test.out删除dlib.so运行test.out 小结 本文学习自狄泰…

[LeetCode][LCR133]位 1 的个数——快速从右边消去1

题目 LCR 133. 位 1 的个数 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 ‘1’ 的个数&#xff08;也被称为 汉明重量).&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言…

静态路由协议实验1

要求&#xff1a; 使用静态路由协议使得全网可达。 第一步、规划IP地址。并配置IP。 第二步、写静态路由 [r1]ip route-static 192.168.3.0 24 192.168.2.2 [r1]ip route-static 192.168.4.0 24 192.168.2.2 [r1]ip route-static 192.168.5.0 24 192.168.2.2[r2]ip route-st…

计算机中丢失steam_api64.dll怎么办?七个方法教你轻松解决

在计算机使用过程中&#xff0c;我们经常会接触到各种各样的动态链接库&#xff08;DLL&#xff09;文件。其中&#xff0c;steamapi64.dll是Steam游戏平台中的一个关键组件&#xff0c;它为Windows操作系统带来了许多好处。本文将详细介绍steamapi64.dll对Windows的好处以及其…

用顺序表实现通讯录

前言 这次的通讯录是基于上一篇的动态顺序表的基础上实现的&#xff0c;如果对动态顺序表不熟悉&#xff0c;可以打开这个链接阅读http://t.csdnimg.cn/9zJ5g&#xff0c;这里我们会调用动态顺序表的函数。 如果想看静态顺序表实现通讯录&#xff0c;可以打开这个链接阅读http:…

thinkphp6入门(21)-- 如何删除图片、文件

假设文件的位置在 /*** 删除文件* $file_name avatar/20240208/d71d108bc1086b498df5191f9f925db3.jpg*/ function deleteFile($file_name) {// 要删除的文件路径$file app()->getRootPath() . public/uploads/ . $file_name; $result [];if (is_file($file)) {if (unlin…

Vite 项目中环境变量的配置和使用

Vite 项目中环境变量的声明 我们要在 Vite 项目中进行环境变量的声明&#xff0c;那么需要在项目的根目录下&#xff0c;新建 .env.[mode] 文件用于声明环境变量&#xff0c;如&#xff1a; .env.test 文件用于测试环境下项目全局变量的声明.env.dev 文件用于开发环境下项目全…

创意绘图小程序:绘画与实用功能的完美融合

创意绘图小程序&#xff1a;绘画与实用功能的完美融合 在数字化时代&#xff0c;创意绘图小程序以其便捷性、互动性和创新性&#xff0c;成为了人们表达自我、释放创意的新平台。本文将介绍一款集白板画、黑板画功能于一身&#xff0c;同时融合画笔调整、画布清空、橡皮擦清除…

在线考试|基于Springboot的在线考试管理系统设计与实现(源码+数据库+文档)

在线考试管理系统目录 目录 基于Springboot的在线考试管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台&#xff1a; 2、后台 管理员功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主…

C语言动态内存空间分配

1. 前言 在讲内存分配前&#xff0c;咱来聊一下为什么会有内存分配这个概念呢&#xff0c;大家都知道C语言当中是有着许多的数据类型&#xff0c;使用这些数据类型就会在内存上开辟其相对应的空间&#xff0c;那既然会开辟相应的空间&#xff0c;为什么还会有内存分配呢&#x…

【数据库】数据库的介绍、分类、作用和特点,AI人工智能数据如何存储

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《数据库》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识…

深度学习理论基础(三)封装数据集及手写数字识别

目录 前期准备一、制作数据集1. excel表格数据2. 代码 二、手写数字识别1. 下载数据集2. 搭建模型3. 训练网络4. 测试网络5. 保存训练模型6. 导入已经训练好的模型文件7. 完整代码 前期准备 必须使用 3 个 PyTorch 内置的实用工具&#xff08;utils&#xff09;&#xff1a; ⚫…

蓝桥杯 - 穿越雷区

解题思路&#xff1a; dfs 方法一&#xff1a; import java.util.Scanner;public class Main {static char[][] a;static int[][] visited;static int[] dx { 0, 1, 0, -1 };static int[] dy { 1, 0, -1, 0 };static long min Long.MAX_VALUE;static long count 0;publi…

先进电气技术 —— (控制理论)何为稳定性?

一、系统稳定性 在控制理论中&#xff0c;系统稳定性是一个非常关键的概念&#xff0c;它主要涉及系统对外界扰动或内部变动的响应行为。以下是与系统稳定性相关的一些核心名词及其解释&#xff1a; 基本概念 稳定性&#xff08;Stability&#xff09; 系统稳定性是指当系统受…