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

蓝桥练习题总结(一)字母图形、完美的代价、01串、序列求和

目录

一、字母图形

二、完美的代价

三、01字串

四、序列求和


一、字母图形

问题描述

利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式

输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。

输出格式

输出n行,每个m个字符,为你的图形。

样例输入

5 7

样例输出

ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC

数据规模与约定

1 <= n, m <= 26。

思路: 

  • 观察样例输出,可得(0,0)、(1,1)...(n,n)这一对角线上的字母都是A。
  • 然后,对于对角线左侧的位置(i, j),其中i > j,字母是向后偏移的,偏移量为i - j;
  • 而对于对角线右侧的位置(i, j),其中i < j,字母是向前偏移的,偏移量为j - i。
  • 我们可以对偏移量进行模26运算来得到正确的字母。

代码实现如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{int n, m; cin >> n >> m; vector<vector<char> >a(n, vector<char>(m));for (int j = 0; j < m; j++){a[0][j] = 65 + j;cout << a[0][j];}cout << '\n';for (int i = 1; i < n; i++){for (int j = 0; j < m; j++){if (i > j){a[i][j] = a[0][0] + i - j;}else {a[i][j] = a[0][0] + j - i;}cout << a[i][j];}cout << '\n';}
}

二、完美的代价

问题描述

  回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。
  交换的定义是:交换两个相邻的字符
  例如mamad
  第一次交换 ad : mamda
  第二次交换 md : madma
  第三次交换 ma : madam (回文!完美!)

输入格式

  第一行是一个整数N,表示接下来的字符串的长度(N <= 8000)
  第二行是一个字符串,长度为N.只包含小写字母

输出格式

  如果可能,输出最少的交换次数。
  否则输出Impossible

样例输入

5
mamad

样例输出

3

思路:

双指针类题。

开始准备:

  • 回文字符串,使字符串满足两端中心对称,设置一个头指针和尾指针。头指针指向第一个字母,下标为0;尾指针指向最后一个字母,下标为n - 1;并再使用一个指针记录尾指针开始遍历的位置。

   char a[8001];bool flag = false; 
   int n, sum=0, i, t,m

   k; // k是记录指针
   cin >> n;getchar(); // 取消换行符
   cin >> a; // 读取字符串到数组a中

   t = n - 1; // 设置t为字符串的最后一个字符的索引

循环过程:

  • 我们使用双指针的方法来遍历字符串。外层循环从头指针i开始,遍历到倒数第二个字符。内层循环从尾指针k开始,从字符串末尾向前遍历,寻找与头指针i处的字符相等的字符。
  • 将尾指针往后的节点全部都向前移动,记录指针处的节点赋值为头指针处的值,这样就保证了中心对称

// 外层循环遍历字符串的每个字符,直到倒数第二个字符
   for(i=0; i<t; ++i)
   {
       // 内层循环从字符串末尾向前遍历,寻找与a[i]相等的字符
       for (k = t; k >= i; --k)
       {

        ......

       }

    }

  • 在内层循环中,我们首先检查头指针和尾指针是否相遇。
  • 如果相遇了,说明字符串遍历完毕。

找到相同字母:

  • 如果找到了与头指针i处字符相等的字符,我们将匹配字符后面的所有字符都向前移动一位,并累计移动次数。
  • 然后,我们更新字符串的末尾索引t,并将匹配的字符移动到其正确的位置(即末尾)。
  • 记录指针--,头指针++
  • 最后,我们跳出内层循环,继续外层循环的下一个迭代。

           // 如果找到了与a[i]相匹配的字符
           if (a[i] == a[k])
           {
               // 将匹配字符后面的所有字符都向前移动一位,累计移动次数
               for (m = k; m < t; ++m)
               {
                   a[m] = a[m + 1];
                   sum++;
               }
               // 更新字符串的末尾索引t,并将匹配的字符移动到其正确的位置
               a[t] = a[i];
               --t;
               break;
           }

结束条件(一、无法形成回文):

  • 此时,我们检查字符串的长度是否为偶数,或者是否已经处理过一个单独的字符(由变量flag记录)。
  • 如果满足这两个条件之一,说明无法将字符串转变为回文字符串,我们输出"Impossible"并结束程序。

           // 如果i和k相遇,说明中间的字符没有匹配的字符
           if (i == k)
           {
               // 如果字符串长度为偶数,或者flag已经被设置为true
               //(即已经处理过一个单独的字符),则输出Impossible
               if (n % 2 == 0 || flag)
               {
                   printf("Impossible");
                   return 0;
               }
           ......

           }

结束条件(二、打印次数):

  • 如果字符串长度为奇数,并且这是第一次遇到单独的字符,我们计算移动次数(即将剩余的字符移动到字符串末尾的次数),并将flag设置为true。

sum += n / 2 - i;
flag = true;
break;

  • 最终,当外层循环结束时,我们输出累计的移动次数sum作为结果。
#include<bits/stdc++.h>
using namespace std;int main(void)
{char a[8001];bool flag = false; int n, sum=0, i, t, k, m; cin >> n;getchar(); // 取消换行符cin >> a; // 读取字符串到数组a中t = n - 1; // 设置t为字符串的最后一个字符的索引// 外层循环遍历字符串的每个字符,直到倒数第二个字符for(i=0; i<t; ++i){// 内层循环从字符串末尾向前遍历,寻找与a[i]相等的字符for (k = t; k >= i; --k){// 如果i和k相遇,说明中间的字符没有匹配的字符if (i == k){// 如果字符串长度为偶数,或者flag已经被设置为true//(即已经处理过一个单独的字符),则输出Impossibleif (n % 2 == 0 || flag){printf("Impossible");return 0;}// 如果字符串长度为奇数,并且这是第一次遇到单独的字符,// 则计算移动次数,设置flag为truesum += n / 2 - i;flag = true;break;}// 如果找到了与a[i]相匹配的字符if (a[i] == a[k]){// 将匹配字符后面的所有字符都向前移动一位,累计移动次数for (m = k; m < t; ++m){a[m] = a[m + 1];sum++;}// 更新字符串的末尾索引t,并将匹配的字符移动到其正确的位置a[t] = a[i];--t;break;}}}// 输出最少的移动次数cout <<sum;return 0;
}

三、01字串

问题描述

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

   x >> i & 1;
// 结果必然为0或1, 表示 x 的二进制表示中的第i位

获取二进制数的某一位的应用: 

#include<bits/stdc++.h>
using namespace std;
int main()
{for (int n = 0; n < 32; n++){for (int i = 4; i >= 0; i--){if (n >> i & 1)cout << 1;else cout << 0;}cout << '\n';}return 0;
}

四、序列求和

问题描述

求1+2+3+...+n的值。

输入格式

输入包括一个整数n。

输出格式

输出一行,包括一个整数,表示1+2+3+...+n的值。

样例输入

4

样例输出

10

样例输入

100

#include <bits/stdc++.h>
using namespace std;int main() {long long n; // 定义一个长整型变量n来存储用户输入scanf("%I64d", &n); // 使用scanf函数读取用户输入的长整型数值,并存储在n中long long sum = 0; // 定义一个长整型变量sum来累计从1到n的和,初始化为0for (long long i = 1; i <= n; i++) // 从1遍历到n{sum += i; // 将当前的i加到sum上,累计求和}printf("%I64d", sum); // 使用printf函数输出求得的和sumreturn 0; // 程序正常结束,返回0
}

今天就先到这了!!!

看到这里了还不给博主扣个:
⛳️ 点赞☀️收藏 ⭐️ 关注!

你们的点赞就是博主更新最大的动力!
有问题可以评论或者私信呢秒回哦。

相关文章:

蓝桥练习题总结(一)字母图形、完美的代价、01串、序列求和

目录 一、字母图形 二、完美的代价 三、01字串 四、序列求和 一、字母图形 问题描述 利用字母可以组成一些美丽的图形&#xff0c;下面给出了一个例子&#xff1a; ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形&#xff0c;请找出这个图形的规律&#xff…...

Android 静默安装二(无障碍服务版)

近期开发上线一个常驻app&#xff0c;项目已上线&#xff0c;今天随笔记录一下静默安装相关内容。我分三篇静默安装&#xff08;root版&#xff09;、静默安装&#xff08;无障碍版&#xff09;、监听系统更新、卸载、安装。 先说说我的项目需求&#xff1a;要求app一直运行&am…...

蓝桥杯 EDA 组 2023模拟+真题原理图解析

本文解析了标题内的原理图蓝桥杯EDA组真题&#xff0c;2021-2022 省赛真题/模拟题在上一篇文中。本文中重复或者是简单的电路节约篇幅不在赘述。 其中需要补充和计算原理图的题目解析都放在最下面 一、2023 年第十四届省赛模拟题1 1.1 Type-C 接口电路 通过 CH340N 将数据转化为…...

聊聊功率器件(氮化镓,碳化硅)

氮化镓和碳化硅是两种具有独特性质和广泛应用的无机物。下面将尽可能详细地解释它们的定义、应用、研究热点以及对我们的价值。 1&#xff0c;氮化镓 氮化镓&#xff08;GaN&#xff09;是一种由氮和镓元素组成的化合物&#xff0c;具有直接能隙的半导体特性。其结构类似于纤…...

计算地球圆盘负荷产生的位移

1.研究背景 计算受表面载荷影响的弹性体变形问题有着悠久的历史&#xff0c;涉及到许多著名的数学家和物理学家&#xff08;Boussinesq 1885&#xff1b;Lamb 1901&#xff1b;Love 1911&#xff0c;1929&#xff1b;Shida 1912&#xff1b;Terazawa 1916&#xff1b;Munk &…...

Harbor介绍

1.什么是Harbor Harbor是一个开源的企业级Docker Registry管理项目&#xff0c;由VMware公司开源。 Harbor提供了比Docker官方公共镜像仓库更为丰富和安全的功能&#xff0c;尤其适合企业环境使用。以下是Harbor的一些关键特性&#xff1a; 权限管理&#xff08;RBAC&#x…...

解决jenkins运行磁盘满的问题

参考&#xff1a;https://blog.csdn.net/ouyang_peng/article/details/79225993 分配磁盘空间相关操作&#xff1a; https://cloud.tencent.com/developer/article/2230624 登录jenkins相对应的服务或容器中查看磁盘情况&#xff1a; df -h在102挂载服务器上看到是这两个文件…...

使用echart绘制拓扑图,树类型,自定义tooltip和label样式,可收缩

效果如图&#xff1a; 鼠标移上显示 vue3 - ts文件 “echarts”: “^5.4.3”, import { EChartsOption } from echarts import * as echarts from echarts/core import { TooltipComponent } from echarts/components import { TreeChart } from echarts/charts import { C…...

常用的6个的ChatGPT网站,国内可用!

GPTGod &#x1f310; 链接&#xff1a; GPTGod &#x1f3f7;️ 标签&#xff1a; GPT-4 免费体验 支持API 支持绘图 付费选项 &#x1f4dd; 简介&#xff1a;GPTGod 是一个功能全面的平台&#xff0c;提供GPT-4的强大功能&#xff0c;包括API接入和绘图支持。用户可以选择免…...

Linux课程____Samba文件共享服务

一、 Samba服务基础 SMB协议&#xff0c;服务消息块 CIFS协议&#xff0c;通用互联网文件系统 1.Samba 服务器的主要程序 smbd:提供对服务器中文件、打印资源的共享访问 nmbd:提供基于 NetBlOS 主机名称的解析 2.目录文件 /etc/samba/smb.conf 检查工具&#xff1a;test…...

Java学习day1

打开命令提示符&#xff08;cmd&#xff09;窗口&#xff1a; 按下winR键&#xff0c;输入cmd 按回车或点击确定&#xff0c;打开cmd窗口 常用cmd命令 盘符名称冒号&#xff08;D:)&#xff1a;盘符切换&#xff0c;示例表示由C盘切换到D盘 dir&#xff1a;查看当前路径下的内…...

ByteTrack多目标跟踪——YOLOX详解

文章目录 1 before train1.1 dataset1.2 model 2 train2.1 Backbone2.2 PAFPN2.3 Head2.3.1 Decoupled Head2.3.2 anchor-free2.3.3 标签分配① 初步筛选② simOTA 2.3.4 Loss计算 项目地址&#xff1a; ByteTrack ByteTrack使用的检测器是YOLOX&#xff0c;是一个目前非常流行…...

Linux 常见驱动框架

一、V4L2驱动框架 v4l2驱动框架主要对象&#xff1a; &#xff08;1&#xff09;video_device&#xff1a;一个字符设备&#xff0c;为用户空间提供设备节点(/dev/videox)&#xff0c;提供系统调用的相关操作(open、ioctl…) &#xff08;2&#xff09;v4l2_device&#xff1a…...

Oracle函数6—递归查询(start with...connect by、sys_connect_by_path、level)

文章目录 一、准备数据二、基本使用三、level函数四、获取完整的全树路径 一、准备数据 创建表 CREATE TABLE TEST_ORG (ID VARCHAR2(64) NOT NULL PRIMARY KEY,NAME VARCHAR2(200),PARTEN_ID VARCHAR2(64) ); comment on column TEST_ORG.ID is 主键; comment on column TES…...

人机交互三原则,网络7层和对应的设备、公钥私钥

人机交互三原则 heo Mandel提出了人机交互的三个黄金原则&#xff0c;它们强调了相似的设计目标&#xff0c;分别是&#xff1a; 简单总结为&#xff1a;控负持面–>空腹吃面 1&#xff0c;用户控制 2&#xff0c;减轻负担 3&#xff0c;保持界面一致 置用户于控制之下&a…...

vue2源码学习01配置rollup打包环境

1.下载rollup相关依赖 npm i rollup rollup-plugin-babel babel/core babel/preset-env --save-dev 2.新建rollup.config.js配置打包选项 //rollup可以导出一个对象&#xff0c;作为打包的配置文件 import babel from rollup-plugin-babel export default {input: ./src/ind…...

DP:斐波那契数列模型

创作不易&#xff0c;感谢三连支持 &#xff01; 斐波那契数列用于一维探索的单峰函数之中&#xff0c;用于求解最优值的方法。其主要优势为&#xff0c;在第一次迭代的时候求解两个函数值&#xff0c;之后每次迭代只需求解一次 。 一、第N个泰波那契数 . - 力扣&#xff08;…...

JavaScript高级(十四)----prmise

异步请求的处理方式 回调函数 所谓的回调函数就是函数作为参数的传递&#xff0c;在一个函数内部调用另一个函数&#xff0c;调用的同时可以把内部函数的数据传递出来&#xff0c;他的使用场景就是异步操作&#xff0c;数据需要等待一段时间才能返回的情况下可以使用回调函数…...

28 OpenCV 轮廓周围绘制图形

文章目录 approxPolyDP 轮廓周围绘制矩形boundingRectminAreaRect绘制圆和椭圆示例 approxPolyDP 轮廓周围绘制矩形 approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bool closed)curve&#xff1a;输入点集&#xff0c;二维点向量的集合appro…...

校企合作,助力人才培养——黄冈师范学院-唯众 “实习实训基地”揭牌仪式顺利举行

3月20日上午&#xff0c;黄冈师范学院计算机学院院长何中林、教务处实习科科长雷汝琳以及计算机学院实验室主任肖飞一行三人&#xff0c;莅临唯众进行参观交流。唯众总经理冉柏权、销售总监舒敏以及董事长助理代西凯进行了热情接待。双方就如何更好地结合企业需求与学院教育资源…...

用C语言解决‘换硬币’问题?我来教你如何调试和验证你的循环逻辑

用C语言解决‘换硬币’问题&#xff1f;我来教你如何调试和验证你的循环逻辑 当你第一次面对"换硬币"这类组合问题时&#xff0c;那种既兴奋又困惑的感觉我至今记忆犹新。作为C语言初学者&#xff0c;理解多重循环的运作机制就像在迷宫中寻找出口——每次你以为找到了…...

CANN-昇腾NPU-RAG推理-检索增强生成怎么部署

RAG&#xff08;Retrieval-Augmented Generation&#xff09;是 LLM 知识库的组合&#xff1a;先检索相关文档&#xff0c;再让 LLM 基于文档回答。昇腾NPU 上部署 RAG 需要两个组件&#xff1a;Embedding 模型&#xff08;做向量检索&#xff09;和 LLM&#xff08;做生成&am…...

GEO生成引擎优化:当AI成为信息分发的主角,品牌如何抢占对话窗口?

当用户不再"搜索-浏览"&#xff0c;而是直接"AI提问-获取答案"&#xff0c;传统SEO的逻辑正在被彻底改写。2026年&#xff0c;GEO&#xff08;Generative Engine Optimization&#xff0c;生成式引擎优化&#xff09;已经从概念走向规模化落地。本文从技术…...

Codex使用API Key授权无法使用插件?

小伙伴们&#xff0c;大家好&#xff0c;我是小溪&#xff0c;见字如面。对于没有ChatGPT账号的小伙伴来说&#xff0c;虽然可以通过API Key授权的方式使用Codex桌面端&#xff0c;但是会有一些限制。比如无法使用插件功能&#xff0c;无法使用Codex移动端进行远程控制等。为了…...

基于Max78000与规则引导的音频数据集构建:边缘AI声音识别实战

1. 项目概述&#xff1a;当边缘AI遇见棕榈树里的“窃听者”在边缘计算和物联网设备大行其道的今天&#xff0c;我们常常面临一个核心矛盾&#xff1a;一方面&#xff0c;我们希望设备足够“聪明”&#xff0c;能实时识别并响应特定的声音模式&#xff0c;比如工厂里高压阀门的异…...

基于Atmega 1284P的16位复古计算器:硬件设计与软件实现全解析

1. 项目概述与核心思路最近在整理工作室时&#xff0c;翻出了一堆老旧的7段数码管和矩阵键盘&#xff0c;看着这些充满复古气息的元件&#xff0c;一个想法冒了出来&#xff1a;为什么不自己动手做一台复古风格的计算器呢&#xff1f;不是那种用液晶屏显示的现代计算器&#xf…...

告别依赖冲突:在Debian12上为特定项目搭建Python2.7.18独立运行环境

告别依赖冲突&#xff1a;在Debian12上为特定项目搭建Python2.7.18独立运行环境 当现代Linux系统已全面拥抱Python3的时代&#xff0c;突然需要维护一个仅支持Python2.7的遗留项目&#xff0c;这种场景对开发者而言无异于一场噩梦。本文将带你用工程化的思维&#xff0c;在Deb…...

实测对比,使用Taotoken聚合接口后Agent任务延迟与稳定性观感

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 实测记录&#xff1a;使用 Taotoken 聚合接口后 Agent 任务延迟与稳定性观感 效果展示类&#xff0c;记录将原有基于单一 API 的 A…...

Win11Debloat:如何用自动化配置工具实现Windows系统的智能优化

Win11Debloat&#xff1a;如何用自动化配置工具实现Windows系统的智能优化 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutte…...

深入解析AlienFX Tools:从硬件直连到个性化灯光控制的完整技术方案

深入解析AlienFX Tools&#xff1a;从硬件直连到个性化灯光控制的完整技术方案 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools 在Alienware设备生态中&…...