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

news2025/2/28 21:26:26

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;
}

发现de % (p-1)(q-1)=1其实也就是求d的逆元,联想到用扩欧。
解密过程是快速幂的经典应用啦~

#include<iostream>
#include<cmath>
using namespace std;
typedef __int128 ll;

ll exGcd(ll a, ll b, ll &x, ll &y){
	if(b == 0){
		x = 1;
		y = 0;
		return a;
	}
	int g = exGcd(b, a % b, x, y), temp = x;
	x = y;
	y = temp - a / b * y;
	return g;
}

ll inverse(ll a, ll b){
	ll x, y;
	ll g = exGcd(a, b, x, y);
	if(g == 1) return (x % b + b) % b;
	else return -1;
}

ll fastPow(ll a, ll b, ll m){//计算过程中会有超出long long的情况,故设置为__int128类型 
	if(b == 0) return 1;
	else if(b & 1) return a * fastPow(a, b - 1, m) % m;
	else{
		ll t = fastPow(a, b / 2, m);
		return t * t % m;
	}
}

int main(){
	ll p = 891234941LL, q = 1123984201LL, d = 212353, n = 1001733993063167141LL, e, c = 20190324LL;
	ll t = (p - 1) * (q - 1);
	e = inverse(d, t);//de % t = 1 扩欧求d的逆元 
	printf("%lld", fastPow(c, e, n));//快速幂
	return 0;
}

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空间跳跃

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

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

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

相关文章

1571. 【基础赛】游戏(game)

1571. 【基础赛】游戏&#xff08;game&#xff09; (Input: game.in, Output: game.out) 题目描述 Introl 在玩一种特殊的游戏——凑顺子。 他现在有 n 张牌&#xff0c;每张牌的点数为 ai​&#xff0c;他希望凑出尽可能多的顺子。 在该游戏中&#xff0c;顺子的定义为&…

【c++】string类常见接口函数

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好啊&#xff0c;本节我们来到STL内容的第一部分&#xff1a;string类接口函数的介绍 目录 1.string类的认识2.常见接口讲解2.1 string类对象的常见构造2.2 对string对象的遍历和…

day7 nest商业项目初探·三(java转ts全栈/3R教室)

背景&#xff1a;从头一点点学起太慢了&#xff0c;直接看几个商业项目吧&#xff0c;看看根据Java的经验&#xff0c;自己能看懂多少&#xff0c;然后再系统学的话也会更有针对性。今天看下一个项目 * 【法国 | 3.75w】Nextjs&#xff1a;小雯工作室创意官网 &#xff08;2023…

【Java】Java使用Swing实现一个模拟计算器(有源码)

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 今天翻了翻之前写的代码&#xff0c;发现自己之前还写了一个计算器&#xff0c;今天把我之前写的代码分享出来。 我记得那会儿刚学不会写&#xff0c;写的乱七八糟&#xff0c;但拿来当期末作业还是不错的哈哈。 直接上…

48-基于腾讯云EKS的容器化部署实战

准备工作 在部署IAM应用之前&#xff0c;我们需要做以下准备工作&#xff1a; 开通腾讯云容器服务镜像仓库。安装并配置Docker。准备一个Kubernetes集群。 开通腾讯云容器服务镜像仓库 在Kubernetes集群中部署IAM应用&#xff0c;需要从镜像仓库下载指定的IAM镜像&#xff…

基于springboot实现医院管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现医院管理系统演示 摘要 随着信息互联网信息的飞速发展&#xff0c;医院也在创建着属于自己的管理系统。本文介绍了医院管理系统的开发全过程。通过分析企业对于医院管理系统的需求&#xff0c;创建了一个计算机管理医院管理系统的方案。文章介绍了医院管理系…

【YOLOv8实战】手把手带你入门YOLOv8,你也能训练自己的检测器,以SAR目标检测为例(源码+数据集+Gradio界面)

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文摘要&#xff1a;基于YOLOv8的SAR图像目标检测系统&#xff0c;覆盖数据制作、数据可视化、模型训练/评估/推理/部署全流程&#xff0c;最后通过 Gradio 界面进行展示。 0 写在前面 上篇分享【飞浆AI实战】交通灯检测&#xff1a…

抖音视频无水印采集拓客软件|视频批量下载提取工具

抖音视频无水印批量采集拓客软件助力高效营销&#xff01; 随着抖音平台的崛起&#xff0c;视频已成为各行各业进行营销的重要工具。但是&#xff0c;传统的视频下载方式往往效率低下&#xff0c;无法满足快速获取大量视频的需求。针对这一问题&#xff0c;我们开发了一款视频无…

Java项目:基于SSM+vue框架实现的人力资源管理系统设计与实现(源码+数据库+毕业论文+任务书)

一、项目简介 本项目是一套基于SSM框架实现的人力资源管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功能…

中介者模式【行为模式C++】

1.简介 中介者模式是一种行为设计模式&#xff0c; 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互&#xff0c; 迫使它们通过一个中介者对象进行合作。 亦称&#xff1a; 调解人、控制器、Intermediary、Controller、Mediator 2.示例 中介者模式在…

【氧化镓】β-Ga2O3肖特基势垒二极管的缺陷识别

本文是一篇关于β-Ga2O3肖特基势垒二极管在电子辐射和退火调节下缺陷识别的研究。文章首先介绍了β-Ga2O3作为一种高性能器件材料的重要性&#xff0c;然后详细描述了实验方法&#xff0c;包括样品制备、电子辐照、热退火处理以及电学特性和深能级瞬态谱&#xff08;DLTS&#…

深度学习环境搭建问题汇总

pip无法通过国内源下载&#xff0c;could not find a version that satisfies the requirement 当遇见could not find a version that satisfies the requirement问题时&#xff0c;可以通过下载whl的方式进行离线安装&#xff0c;以torch1.12.0为例&#xff0c;如果用的是阿里…

一网统管/安防监控/视频综合管理EasyCVR视频汇聚平台解决方案

一、当前现状分析 当前视频资源面临以下问题&#xff1a; 1&#xff09;不同单位在视频平台建设中以所属领域为单位&#xff0c;设备品牌众多&#xff0c;存在的标准不一&#xff0c;各系统之间也没有统一标准&#xff1b; 2&#xff09;各单位视频平台建设分散、统筹性差&a…

机器学习和深度学习 -- 李宏毅(笔记与个人理解1-6)

机器学习和深度学习教程 – 李宏毅&#xff08;笔记与个人理解&#xff09; day1 课程内容 什么是机器学习 找函数关键技术&#xff08;深度学习&#xff09; 函数 – 类神经网络来表示 &#xff1b;输入输出可以是 向量或者矩阵等如何找到函数&#xff1a; supervised Lear…

Redis 最佳实践 [后端必看]

文章目录 1. Redis 键值设计1.1 优雅的 key 结构1.2 拒绝 BigKeyBigKey的危害如何发现BigKey①redis-cli --bigkeys② scan 扫描③第三方监控④网络监控 如何删除 BigKey 1.3 恰当的数据类型总结&#xff1a; 2. 批处理优化3. 服务器端优化-持久化配置4. 服务器端优化-慢查询优…

产品经理有门槛吗?

转行NPDP也是很合适的一条发展路径&#xff0c;之后从事新产品开发相关工作~ 一、什么是NPDP&#xff1f; NPDP 是产品经理国际资格认证&#xff0c;美国产品开发与管理协会&#xff08;PDMA&#xff09;发起的&#xff0c;是目前国际公认的唯一的新产品开发专业认证&#xff…

移植 amd blas 到 cuda 生态

1&#xff0c;下载源码 GitHub - ROCm/rocBLAS: Next generation BLAS implementation for ROCm platform $ git clone --recursive https://github.com/ROCm/rocBLAS.git 2&#xff0c; 编译 2.1 不带Tensile的编译 如果是在conda环境中&#xff0c;需要deactive conda 环境…

线上商城做活动,页面氛围布置不能少

一个商城系统要做营销&#xff0c;该从哪些方面入手营造商城活动氛围&#xff0c;对于线上商城系统来说&#xff0c;除了营销的价格氛围&#xff0c;另一个重要的氛围就是视觉氛围&#xff0c;能让人第一眼注意到&#xff0c;并产生兴趣&#xff0c;这就迈出了营销的关键一步。…

《springcloud alibaba》 五 gateway网关

目录 gateway基础版本pom.xmlapplication.yml启动类测试 gateway集成nacosorder-nacos和stock-nacos项目微调cloud-gateway调整测试 gateway集成nacos简写版本内置断言自定义断言工厂规范 全局过滤器gateway流控降级pom.xmlapplication.yml测试流控具体配置api流控 降级代码版本…

数字社交的新典范:解析Facebook的成功密码

在当今数字化时代&#xff0c;社交媒体已经成为人们日常生活的重要组成部分&#xff0c;而Facebook作为最知名的社交媒体平台之一&#xff0c;其成功之处备受瞩目。本文将深入解析Facebook的成功密码&#xff0c;探讨其在数字社交领域的新典范。 1. 用户体验的优化 Facebook注…