蓝桥杯练习题

embedded/2024/11/29 8:04:56/

目录

1.劲舞团

2.数字诗意

3.封闭图形个数

 4.回文数组


欢迎

1.劲舞团

0劲舞团 - 蓝桥云课

#include <iostream>
using namespace std;
int main()
{int num=1,M=0;long long c[1000000];int cnt=0;string a,b ;while(cin>>a>>b>>c[cnt++])//系统自动输入数据{if(cnt==1){continue;}if(a==b && c[cnt-1]-c[cnt-2]<=1000)//敲击字符正确,并且两个打出的字符之间的时间小于1s{num++;}else{M=max(num,M);//找出最长的连击num=1;}}cout<<M;return 0;
}

2.数字诗意

0数字诗意 - 蓝桥云课

 数字能够表示为连续正整数之和的条件是该数字不是2的幂

检查每个数字是否是 2 的幂

对于每个数字,小于3或者它是 2 的幂,则它不含有诗意,需要删除

#include <iostream>
using namespace std;
bool a(long long s)
{if(s<=0) return false;while(s%2==0){s/=2;}return s==1;//除到最后结果不为1就不是2的幂次方
}
int main()
{// 请在此输入您的代码long long n=0,m=0;cin>>n;int count=0;for(int j=0;j<n;j++){cin>>m;if( m<3 || a(m) ){count++;}}cout<<count;return 0;
}

3.封闭图形个数

0封闭图形个数 - 蓝桥云课

 

 ret函数:利用switch记录每个数字可以组成多少个封闭图形

a函数对应题目的意思确定排序规则:

  • 第一优先级:封闭图形的个数。
  • 第二优先级:数字的数值。

通过自定义函数来排序好

#include <iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;int ret(char s)
{switch (s){case '0':return 1;case '4':return 1;case '6':return 1;case '9':return 1;case '8':return 2;default:return 0;}
}
bool a(const std::string& a, const std::string& b)
{int countA=0, countB=0;for (char ch : a){countA += ret(ch);}for (char ch : b){countB += ret(ch);}if (countA != countB){return countA < countB;}return std::stoi(a) < std::stoi(b);//stoi函数:把字符转化成整数
}
int main()
{int n = 0;std::cin >> n;std::vector<std::string> nums(n);for (int i = 0; i < n; i++){std::cin >> nums[i];}std::sort(nums.begin(), nums.end(), a);for(const string& ch:nums){cout<<ch<<" ";}return 0;
}

 4.回文数组

 0回文数组 - 蓝桥云课

需要将数组的每一对 (a[i],a[n−i−1])(a[i],a[n−i−1]) 调整成相等,就是回文

对于每一对 a[i]a[i] 和 a[n−i−1]a[n−i−1],我们可以通过调整它们的值使它们相等。

每次调整的代价就是这两个数之间的绝对差值,即 ∣a[i]−a[n−i−1]∣∣a[i]−a[n−i−1]∣。

将所有不等的数对调整到相等时,最小的操作次数就是每一对的差值的总和。

#include <bits/stdc++.h>
using namespace std;const int N = 100100;long long a[N], b[N], sum = 0;int main() {int n;cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];  // 逐个读取a数组的值,数组下标从1开始}// 对数组b进行赋值,数组b的前半部分是a数组的倒序差值for (int i = 1; i <= n / 2; i++) {b[i] = a[n - i + 1] - a[i];  // b[i]为a数组倒数第i个元素减去第i个元素的差}// 遍历b数组的前半部分,计算sum并做进一步处理for (int i = 1; i <= n / 2; i++) {sum += abs(b[i]);  // 将b[i]的绝对值累加到sum中// 如果b[i]和b[i+1]符号相同(即b[i] * b[i+1] > 0),则进行合并操作if (b[i] * b[i + 1] > 0) {// 如果b[i+1]的绝对值大于b[i],则b[i+1]减去b[i]if (abs(b[i + 1]) > abs(b[i])) {b[i + 1] -= b[i];  // 合并两个值} else {i++;  // 如果b[i]的绝对值较大,则跳过下一个元素,i自增}}}cout << sum;return 0;
}

本道题中的’合并操作‘解析:

因为一次操作可以指定相邻的两个数,同时加1或减1

分为两种情况

1. 同号:b[i+1]需减去b[i]的操作数,再加到sum中

2.异号:只需将b[i]的绝对值全部加到sum中

谢谢


http://www.ppmy.cn/embedded/141405.html

相关文章

【图像处理】用Python和OpenCV实现简单的图像增强与特征提取

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 图像处理是计算机视觉领域的重要基础,而图像增强和特征提取是其中的关键技术。本文将详细探讨如何使用 Python 和 OpenCV 实现图像增强与特征提取。通过具体示例,我们将介绍滤波、直方图均衡化、边缘检测…

深度学习实战人脸识别

文章目录 前言一、人脸识别一般过程二、人脸检测主流算法1. MTCNN2. RetinaFace3. CenterFace4. BlazeFace5. YOLO6. SSD7. CascadeCNN 三、人脸识别主流算法1.deepface2.FaceNet3.ArcFace4.VGGFace5.DeepID 四、人脸识别系统实现0.安装教程与资源说明1. 界面采用PyQt5框架2.人…

公网弹性绑定负载均衡收费吗?

公网弹性绑定负载均衡收费吗&#xff1f;公网弹性绑定负载均衡&#xff08;ELB&#xff09;是收费的。费用主要包括公网IP费、带宽费和负载均衡实例费。其中&#xff0c;带宽费可以按固定带宽或实际使用流量计费&#xff0c;而实例费则根据类型、规格和使用时长来定价。此外&am…

SQL常见面试题(四)

专用窗口函数 MySQL 8.0 版本引入了窗口函数的支持&#xff0c;下面是 MySQL 中常见的窗口函数及其用法&#xff1a; ROW_NUMBER(): 为查询结果集中的每一行分配一个唯一的整数值。 SELECT col1, col2, ROW_NUMBER() OVER (ORDER BY col1) AS row_num FROM table; RANK(): …

深入浅出剖析典型文生图产品Midjourney

2022年7月,一个小团队推出了公测的 Midjourney,打破了 AIGC 领域的大厂垄断。作为一个精调生成模型,以聊天机器人方式部署在 Discord,它创作的《太空歌剧院》作品,甚至获得了美国「数字艺术/数码摄影」竞赛单元一等奖。 这一事件展示了 AI 在绘画领域惊人的创造力,让人们…

不间断电源 (UPS) 对现代技术可靠性的影响

在这个技术型世界里&#xff0c;无论是在个人还是商业环境中&#xff0c;电力供应商提供的稳定供电都变得越来越重要。 不间断电源 (UPS) 系统是一种不可或缺的解决方案&#xff0c;可保证终端设备不受干扰地运行&#xff0c;在出现电源问题或故障时让用户继续工作。 这篇文章…

4、常量和进制转换

1、常量 1.1、常量 常量是在程序运行中值不能内改变&#xff08;常数&#xff09;。 整型:12 55 实型:21.5 字符型常量: ‘A’ 1.2、常量不同进制表示 常量数据在计算机中除了用 十进制 表示&#xff0c;还可以用 二进制、八进制、十六进制表示。 十进制数据&…

身份证 OCR 识别 API 接口的应用场景

在过去&#xff0c;各单位在办理业务时&#xff0c;需要人工来填写身份证等证照内容&#xff0c;这种方式不仅耗时费力&#xff0c;还容易出现差错&#xff0c;从而影响业务办理的效率和准确性。 随着近年来移动互联网的迅速发展&#xff0c;网络安全和信息安全的重要性也日益…