当前位置: 首页 > 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 的一些…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

图解JavaScript原型:原型链及其分析 | JavaScript图解

​​ 忽略该图的细节&#xff08;如内存地址值没有用二进制&#xff09; 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么&#xff1a;保存在堆中一块区域&#xff0c;同时在栈中有一块区域保存其在堆中的地址&#xff08;也就是我们通常说的该变量指向谁&…...

Windows 下端口占用排查与释放全攻略

Windows 下端口占用排查与释放全攻略​ 在开发和运维过程中&#xff0c;经常会遇到端口被占用的问题&#xff08;如 8080、3306 等常用端口&#xff09;。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口&#xff0c;帮助你高效解决此类问题。​ 一、准…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天&#xff0c;今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案&#xff0c;它们不仅提供了优雅的设计思路&#xff0c;还能显著提升系统的性能…...