当前位置: 首页 > news >正文

第十四届蓝桥杯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;
}

E 最大区间
在这里插入图片描述
单调栈对两个方向上各使用使用一次单调栈求得距离i位置最近的比它小的数。
完整代码:

#include <bits/stdc++.h>using namespace std;const int N = 3e5+5;long long a[N],l[N];int main(){long long n,ans=0;cin >> n;for(int i=0;i<n;i++){cin >> a[i];}stack<pair<int,int>> s;stack<pair<int,int>> ss;s.push({-1,-1});ss.push({-1,-1});for(int i=0;i<n;i++){while(s.size()&&a[i]<=s.top().first)s.pop();l[i]=a[i]*(i-s.top().second);s.push({a[i],i});}for(int i=n-1;i>=0;i--){while(ss.size()&&a[i]<=ss.top().first)ss.pop();ans=max(ans,(long long)l[i]+a[i]*(ss.top().second-i-1));ss.push({a[i],i});}cout<<ans;return 0;
}

扩展 栈的使用先进后出
声明

stack<int> s;
stack<pair<int,int>> ss;
s.push();
s.pop();

选段排序
在这里插入图片描述
思路:主要利用大顶堆和小顶堆进行扩展区间。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
#define int long long
#define endl '\n'
#define INF 0x3f3f3f3f3f3f3f3f 
const int N=2e5+10; 
priority_queue<int,vector<int>,less<int>> q1;//大顶堆 
priority_queue<int,vector<int>,greater<int>> q2;//小顶堆 
int a[N];
signed main()
{std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n,p,q;cin>>n>>p>>q;for(int i=1;i<=n;i++)cin>>a[i];sort(a+p,a+q+1);int minn=a[p],maxx=a[q];int sub=maxx-minn;for(int i=p;i<=q;i++){q1.push(a[i]);q2.push(a[i]);}for(int i=q+1;i<=n;i++)//[p,q]拓展右边界[L,q]{int t=q1.top();if(a[i]<minn) minn=a[i];if(a[i]<t){q1.pop();q1.push(a[i]);sub=max(sub,q1.top()-minn);} }for(int i=p-1;i>=1;i--)//[p,q]拓展左边界[p,R]{int t=q2.top();if(a[i]>maxx) maxx=a[i];if(a[i]>t){q2.pop();q2.push(a[i]);sub=max(sub,maxx-q2.top());} }cout<<sub;return 0;
}

相关文章:

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

A 混乘数字 关键思路是求每个十进制数的数字以及怎么在一个数组中让判断所有的数字次数相等。 求每个十进制的数字 while(n!0){int x n%10;//x获取了n的每一个位数字n/10;}扩展&#xff1a;求二进制的每位数字 &#xff08;注意&#xff1a;进制转换、1的个数、位运算&#…...

KDD 2024|基于隐空间因果推断的微服务系统根因定位

简介&#xff1a;本文介绍了由清华大学、南开大学、eBay、微软、中国科学院计算机网络信息中心等单位共同合作的论文《基于隐空间因果推断的受限可观测性场景的微服务系统根因定位》。该论文已被KDD 2024会议录用。 论文标题&#xff1a;Microservice Root Cause Analysis Wit…...

白鹭群优化算法,原理详解,MATLAB代码免费获取

白鹭群优化算法&#xff08;Egret Swarm Optimization Algorithm&#xff0c;ESOA&#xff09;是一种受自然启发的群智能优化算法。该算法从白鹭和白鹭的捕食行为出发&#xff0c;由三个主要部分组成:坐等策略、主动策略和判别条件。将ESOA算法与粒子群算法(PSO)、遗传算法(GA)…...

【源码】2024完美运营版商城/拼团/团购/秒杀/积分/砍价/实物商品/虚拟商品等全功能商城

后台可以自由拖曳修改前端UI页面 还支持虚拟商品自动发货等功能 前端UNIAPP 后端PHP 一键部署版本 获取方式&#xff1a; 微&#xff1a;uucodes...

Java-数组内存解析

文章目录 1.内存的主要结构&#xff1a;栈、堆2.一维数组的内存解析3.二维数组的内存解析 1.内存的主要结构&#xff1a;栈、堆 2.一维数组的内存解析 举例1&#xff1a;基本使用 举例2&#xff1a;两个变量指向一个数组 3.二维数组的内存解析 举例1&#xff1a; 举例2&am…...

Spring Cache --学习笔记

一、概述 Spring Cache 是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要简单地加一个注解&#xff0c;就能实现缓存功能。 Spring Cache 提供了一层抽象&#xff0c;底层可以切换不同的缓存实现&#xff0c;例如&#xff1a; EHCache Caffeine Redis(常…...

NTP服务的DDoS攻击:原理和防御

NTP协议作为一种关键的互联网基础设施组件&#xff0c;旨在确保全球网络设备间的时钟同步&#xff0c;对于维护数据一致性和安全性至关重要。然而&#xff0c;其设计上的某些特性也为恶意行为者提供了发动大规模分布式拒绝服务(DDoS)攻击的机会。以下是NTP服务DDoS攻击及其防御…...

【面试干货】事务的并发问题(脏读、不可重复读、幻读)与解决策略

【面试干货】事务的并发问题&#xff08;脏读、不可重复读、幻读&#xff09;与解决策略 一、脏读&#xff08;Dirty Read&#xff09;二、不可重复读&#xff08;Non-repeatable Read&#xff09;三、幻读&#xff08;Phantom Read&#xff09;四、总结 &#x1f496;The Begi…...

函数式接口:现代编程的利器

1. 引言 在软件开发的演进过程中&#xff0c;函数式编程&#xff08;Functional Programming, FP&#xff09;逐渐显露头角&#xff0c;成为解决复杂问题的有效工具之一。函数式接口作为函数式编程的核心概念之一&#xff0c;其重要性不言而喻。本文将深入探讨函数式接口的概念…...

2022职称继续教育--深入实施新时代人才强国战略 加快建设世界重要人才中心和创新高地

单选题&#xff08;共7题&#xff0c;每题5分&#xff09; 1、&#xff08;&#xff09;实行职位职级制工资为主。 D、中长线科研重要岗位人员 2、建设世界重要人才中心和创新高地有&#xff08;&#xff09;个阶段目标。 B、三 3、综合国力竞争说到底是&#xff08;&#xf…...

kube-prometheus-stack 识别 k8s 集群内所有的 ServiceMonitor 和 PrometheusRule

默认情况下&#xff0c;kube-prometheus-stack 只自己创建的 ServiceMonitor&#xff0c;如果 k8s 集群内有多个非 kube-prometheus-stack 创建的 ServiceMonitor&#xff0c;不会被识别到。PrometheusRule 同理。 要识别所有的 ServiceMonitor 和 PrometheusRule &#xff0c;…...

Android 图片加载glide库 一次通关

前言 Glide是一个由Bumptech开发的开源图片加载库&#xff0c;专门用于Android平台。它被广泛应用于Android应用中&#xff0c;以简化图片加载过程&#xff0c;并提高性能和效率。 Glide能够快速加载图片&#xff0c;同时减少页面加载时间和内存消耗。Glide具有强大的缓存机制…...

Spring OAuth2:开发者的安全盾牌!(上)

何利用Spring OAuth2构建坚不可摧的安全体系&#xff1f;如何使用 OAuth2 从跨域挑战到性能优化&#xff0c;每一个环节都为你的应用保驾护航&#xff1f; 文章目录 Spring OAuth2 详解1. 引言简述OAuth2协议的重要性Spring Framework对OAuth2的支持概述 2. 背景介绍2.1 OAuth2…...

设计模式使用(成本扣除)

前言 名词解释 基础名词 订单金额&#xff1a;用户下单时支付的金额&#xff0c;这个最好理解 产品分成&#xff1a;也就是跟其他人合做以后我方能分到的金额&#xff0c;举个例子&#xff0c;比如用户订单金额是 100 块&#xff0c;我方的分成是 80%&#xff0c;那么也就是…...

输入输出(2)——C++的标准输出流

目录 一、C的标准输出流 &#xff08;一&#xff09;cout、cerr和clog流对象 1、cout 流对象 2、cerr 流对象 3、clog流对象 &#xff08;二&#xff09;用函数put输出字符 &#xff08;三&#xff09;用函数 write 输出字符 一、C的标准输出流 标准输出流——流向标准输…...

C语言序列化和反序列化--TPL(一)

TPL TPL说明网站 C语言中高效的序列化 您可以使用tpl快速轻松地存储和重新加载C数据。Tpl是一个用于序列化C数据的库。数据以自然二进制形式存储。该API很小&#xff0c;并试图保持“不碍事”。Tpl可以序列化许多C数据类型&#xff0c;包括结构。Tpl与文件、内存缓冲区和文件…...

Session + JWT + Cookie

00&#xff1a;HTTP无状态&#xff08;为了保持状态&#xff0c;前端好麻烦&#xff0c;又要自己存&#xff0c;又要想办法带出去&#xff0c;于是使用cookie&#xff09; 01&#xff1a;Cookie 将用户信息&#xff0c;在每次请求时候 带给后端&#xff08;但是自己存储大小有…...

PaddleOCR2.7+Qt5

章节一&#xff1a;Windows 下的 PIP 安装 官网安装教程地址 按照里面的教程去安装 如果使用cuda版本的还要安装tensorrt&#xff0c;不然后面运行demo程序的程序会报如下错。 下载TensorRT 8版本&#xff0c;tensorrt下载地址 章节二&#xff1a;编译源码 进入官网源码地址 下…...

在Android中解析XML文件并在RecyclerView中显示

1. 引言 最近工作有解析外部xml文件在App中显示的需求&#xff0c;特来写篇文章记录一下&#xff0c;方便下次使用。 2. 准备工作 首先&#xff0c;在项目的AndroidManifest.xml文件中添加读取外部存储的权限声明。 <uses-permission android:name"android.permiss…...

Notes for video: EDC-Con 2022/01 - EDC Conceptual Overview and Architecture

Eclipse Dataspace Connector 中文概念 Eclipse Dataspace Connector (EDC) 是一个开源项目&#xff0c;旨在提供一种标准化的方法来连接和共享数据空间中的数据。它是 Eclipse Foundation 下的一个项目&#xff0c;目标是促进数据共享和数据交换的互操作性。以下是 EDC 的一些…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...