PAT乙级 1110 区块反转 (25 分) C++

2023-10-27

1110 区块反转 (25 分)

给定一个单链表 L,我们将每 K 个结点看成一个区块(链表最后若不足 K 个结点,也看成一个区块),请编写程序将 L 中所有区块的链接反转。例如:给定 L 为 1→2→3→4→5→6→7→8,K 为 3,则输出应该为 7→8→4→5→6→1→2→3。

输入格式:

每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤105)、以及正整数 K (≤N),即区块的大小。结点的地址是 5 位非负整数,NULL 地址用 −1 表示。

接下来有 N 行,每行格式为:

Address Data Next

其中 Address 是结点地址,Data 是该结点保存的整数数据,Next 是下一结点的地址。

输出格式:

对每个测试用例,顺序输出反转后的链表,其上每个结点占一行,格式与输入相同。

输入样例:

00100 8 3
71120 7 88666
00000 4 99999
00100 1 12309
68237 6 71120
33218 3 00000
99999 5 68237
88666 8 -1
12309 2 33218

输出样例:

71120 7 88666
88666 8 00000
00000 4 99999
99999 5 68237
68237 6 00100
00100 1 12309
12309 2 33218
33218 3 -1

参考: 【2019冬PAT乙级真题】7-5 区块反转 (25分)_苯酸氨酰糖化物的博客-CSDN博客

类似题型PAT乙级 1025 反转链表 (25 分)_永远有多远.的博客-CSDN博客

思路:

依旧是用结构体数组模拟链表的过程,按题意遍历链表,将结点地址存入s

需要注意的是在用reverse进行反转时要对上限进行判断(因为可能会遇到不足k个元素的情况) 不能超过s.end()否则会溢出 用min函数取最小的即可 

这个反转结束后 还需要对整体再反转一次再输出 

 AC代码

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

const int MAXN = 100000;

struct node {
	int address, data, next;
}nodep[MAXN];

int main()
{
	int address1, n, k;
	cin >> address1 >> n >> k;
	for (int i = 0; i < n; i++) {
		int address;
		cin >> address;
		cin >> nodep[address].data >> nodep[address].next;
	}
	vector<int>s;
	for (int i = address1; i != -1; i = nodep[i].next) {
		s.push_back(i);
	}
	for (int i = 0; i < s.size(); i += k)
		reverse(s.begin() + i, min(s.begin() + i + k, s.end()));
	reverse(s.begin(), s.end());
	for (int i = 0; i < s.size() - 1; i++) 
		printf("%05d %d %05d\n", s[i], nodep[s[i]].data, s[i + 1]);
	printf("%05d %d -1\n", s[s.size() - 1], nodep[s[s.size() - 1]].data);
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PAT乙级 1110 区块反转 (25 分) C++ 的相关文章

  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46

随机推荐

  • 在Java中使用WebSocket

    如果您觉得本博客的内容对您有所帮助或启发 请关注我的博客 以便第一时间获取最新技术文章和教程 同时 也欢迎您在评论区留言 分享想法和建议 谢谢支持 一 简介 1 1 什么是WebSocket WebSocket是一种协议 用于在Web应用程
  • Linux 可视化管理(webmin 和 bt(宝塔)运维工具的详细安装教程:webmin 安装配置和使用,bt 宝塔 的安装配置和使用)

    目录 第十八章 webmin 和 bt 宝塔 运维工具 18 1 webmin 安装配置和使用 18 1 1 基本介绍 18 1 2 安装 webmin 配置 18 1 3 简单使用演示 18 2 bt 宝塔 的安装配置和使用 18 2 1
  • 静电电容的计算与选型,帮助硬件解决产品最难的EMC问题!

    ESD的基本概念就不说了 直接来点实用的干货 在ESD测试中 我们经常会遇到一些比较明显的测试现象 比如设备重启 卡死或者屏幕闪屏的问题 究其根本 这些现象都是ESD造成的 而很多时候只需要加一个电容就能解决 本篇文章就静电电容的这个妙用进
  • char、int、short、float等数据类型

    char类型的最大值 127 char类型的最小值 128 signed char类型的最大值 127 signed char类型的最小值 128 unsigned char类型的最大值 255 short类型的最大值 32767 shor
  • ChatGPT 成全球学生的“作弊神器”?韩国学生“喜”提 0 分……

    整理 朱珂欣 出品 CSDN程序人生 ID coder life 仅仅横空出世 70 余天的 ChatGPT 已经累计用户超 1 亿 创下了互联网最快破亿应用记录 根据 Similarweb 的数据 截至今年 1 月 平均每天约有 1300
  • L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误

    L2TP连接尝试失败 昨天还能连接 就因为昨晚上把windows10更新了 今天就连接不了 报错如下 百度全都是千篇一律的文章 也无法解决我的问题 知道我发现是因为更新的问题 卸载更新后问题成功解决 操作步骤 点击开始 gt gt 设置 g
  • Qt QPixmap QImage 图片的等比例缩放到指定大小

    QPixmap pixmap path pixmap QPixmap fromImage imgShow pixmap pixmap scaled 152 76 Qt KeepAspectRatio Qt SmoothTransformat
  • 华为OD机试 - 内存资源分配Ⅱ(Java)

    题目描述 有一个简易内存池 内存按照大小粒度分类 每个粒度有若干个可用内存资源 用户会进行一系列内存申请 需要按需分配内存池中的资源返回申请结果成功失败列表 分配规则如下 分配的内存要大于等于内存的申请量 存在满足需求的内存就必须分配 优先
  • Retrofit请求数据对错误以及网络异常的处理

    异常处理 Retrofit本身会抛出HttpException Gson解析会抛出解析异常 此外我们还应该处理与服务器约定好的 异常 即上一篇提到的返回数据中result字段值不会0的情况 这里要先解决一个问题 就是Gson构建的对象 通过
  • Py区块链源码笔记 (1)挖矿

    昨晚听大佬小课堂 给我普及一晚上区块链相关各种知识 深深感觉到自己宛如一个智障 我不配说自己是学计算机的啊 膜拜之余 转载大佬的文章 像大佬学习 文章出处 Py区块链源码笔记 1 挖矿 也欢迎看到人的去访问他博客 Py区块链源码笔记 1 挖
  • 7-39 jmu-python-逆序输出 (5 分)

    7 39 jmu python 逆序输出 5 分 输入一行字符串 然后对其进行如下处理 输入格式 字符串中的元素以空格或者多个空格分隔 输出格式 逆序输出字符串中的所有元素 然后输出原列表 然后逆序输出原列表每个元素 中间以1个空格分隔 注
  • 【linux】——文件系统

    目录 什么是inode 目录 硬链接 软链接 什么是inode 当我们创建一个文件时 我们不对文件中写入任何内容 请问该文件是否占磁盘空间 答案是肯定的 因为文件中的属性信息也占了磁盘空间 首先我们得认清一个概念 文件构成 文件属性信息 文
  • 论文精读及分析:Deep Multi-Modal Object Detection and Semantic Segmentation for Autonomous Driving

    本文主要内容为论文 Deep Multi Modal Object Detection and Semantic Segmentation for Autonomous Driving Datasets Methods and challe
  • 【CV】第 6 章:图像分类的实际方面

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • nodejieba安装记(Windows)

    导语 最近想分析一下自己在学校论坛bt的下载行为 又想耍帅 所以准备整个词云 而词云的数据来源必然是下载种子的名称 类型等 所以不可避免要针对所有下载种子做关键词检索 因此需要用到中文分词工具 因为我利用nodejs 所以在网上查找了很多资
  • 阿里云轻量级应用服务器如何使用?

    阿里云轻量级应用服务器如何使用 一直听朋友说 可以在阿里云上付费购买一个自己的服务器 然后搭建部署自己的小应用 因为是云服务器 所以可以轻轻一个连接访问自己发布的应用 可以说是很棒棒了 那么如何使用已经申请好的阿里云服务器呢 主要步骤如下
  • 毕业设计--------登录鉴权

    前言 提示 这里只是记录一下自己做毕业设计的思路 前端采用vue 后端用springCloud 一 拦截器 Configuration public class InterceptorConfig extends WebMvcConfigu
  • android button setMinHeight setMinWidth 无效解决办法

    setMinWidth 0 setMinHeight 0 setMinimumWidth 0 必须同时设置这个setMinimumHeight 0 必须同时设置这个两个方法同时设置才能生效 转载于 https www cnblogs com
  • 人体骨骼关键点检测的初尝试

    关于人体骨骼关键点模型的介绍 请见上一篇博客 PaddleHub人体姿态检测模型pose resnet50 mpii 由于群友讨论到舞蹈视频 所以想了下 可以用这个搞事情 来个荧光棒舞怎么样 于是我打算拿寡姐来试试 使用关键点检测后 看来检
  • PAT乙级 1110 区块反转 (25 分) C++

    1110 区块反转 25 分 给定一个单链表 L 我们将每 K 个结点看成一个区块 链表最后若不足 K 个结点 也看成一个区块 请编写程序将 L 中所有区块的链接反转 例如 给定 L 为 1 2 3 4 5 6 7 8 K 为 3 则输出应