【PAT甲级】1074 Reversing Linked List (25 point(s))

2023-11-12

Given a constant K K K and a singly linked list L L L, you are supposed to reverse the links of every K K K elements on L L L. For example, given L being 1→2→3→4→5→6, if K = 3 K=3 K=3, then you must output 3→2→1→6→5→4; if K = 4 K=4 K=4, you must output 4→3→2→1→5→6.

Input Specification:

Each input file contains one test case. For each case, the first line contains the address of the first node, a positive N ( ≤ 1 0 5 ≤10^5 105) which is the total number of nodes, and a positive K K K ( ≤ N ≤N N) which is the length of the sublist to be reversed. The address of a node is a 5-digit nonnegative integer, and NULL is represented by − 1 -1 1.

Then N N N lines follow, each describes a node in the format:

Address Key Next

where Address is the address of the node in memory, Key is an integer in [ − 1 0 5 , 1 0 5 ] [−10^5,10^5] [105,105], and Next is the address of the next node. It is guaranteed that all the keys are distinct and there is no cycle in the linked list starting from the head node.

Output Specification:

For each case, output the resulting ordered linked list. Each node occupies a line, and is printed in the same format as in the input.

Sample Input:

00100 6 4
00000 4 99999
00100 1 12309
68237 6 -1
33218 3 00000
99999 5 68237
12309 2 33218

Sample Output:

00000 4 33218
33218 3 12309
12309 2 00100
00100 1 99999
99999 5 68237
68237 6 -1

Method:

模拟链表模板,按组反转

Solution:

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

// 链表节点
const int maxn = 1e6+10; 		
struct node {
	int address, key, next;
}nod[maxn]; 

int main() {
	int head1 = 0, n = 0, k = 0;
	cin >> head1 >> n >> k;

    // 初始化
	int address = 0, key = 0, next = 0;
	for (int i = 0; i < n; i++) {
		cin >> address >> key >> next;
		nod[address].address = address;
		nod[address].key = key;
		nod[address].next = next;
	}

    // 装入向量
	vector<node> list1;
	for (head1; head1 != -1; head1 = nod[head1].next)
		list1.push_back(nod[head1]);
	
    // 按组反转
	int sum = list1.size();
	for (int i = 0; i < (sum - sum % k); i += k)
		reverse(list1.begin() + i, list1.begin() + i + k);
	
    // 更新下标
	for (int i = 0; i < sum - 1; i++)
		list1[i].next = list1[i+1].address;
	list1[sum-1].next = -1;
	
    // 格式化打印
	for (int i = 0; i < sum - 1; i++)
		printf("%05d %d %05d\n", list1[i].address, list1[i].key, list1[i].next);
	printf("%05d %d -1\n", list1[sum-1].address, list1[sum-1].key);
	
	return 0;	
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【PAT甲级】1074 Reversing Linked List (25 point(s)) 的相关文章

  • PAT乙级题解1016——1016 部分A+B(Java)

    PAT乙级题解1016 1016 部分A 43 B xff08 Java xff09 一 xff1a 题目 二 xff1a 输入输出 输入样例 xff1a span class token number 3862767 span span
  • PAT 1054 求平均值 python

    1054 求平均值 20 分 本题的基本要求非常简单 给定 N 个实数 计算它们的平均值 但复杂的是有些输入数据可能是非法的 一个 合法 的输入是 1000 1000 区间内的实数 并且最多精确到小数点后 2 位 当你计算平均值的时候 不能
  • 7-1 用格里高利公式求给定精度的PI值 (15分)

    教育超市 浙大版 C语言程序设计 第3版 第4章 循环结构 练习4 1 用格里高利公式求 的近似值 本题要求编写程序 计算序列部分和 4 1 1 3 1 5 1 7 直到最后一项的绝对值小于给定精度eps 输入格式 输入在一行中给出一个正实
  • 【PAT】1033 旧键盘打字 (20 分)

    1033 旧键盘打字 20 分 旧键盘上坏了几个键 于是在敲一段文字的时候 对应的字符就不会出现 现在给出应该输入的一段文字 以及坏掉的那些键 打出的结果文字会是怎样 输入格式 输入在 2 行中分别给出坏掉的那些键 以及应该输入的文字 其中
  • L1-095 分寝室PTA

    学校新建了宿舍楼 共有 n 间寝室 等待分配的学生中 有女生 n0 位 男生 n1 位 所有待分配的学生都必须分到一间寝室 所有的寝室都要分出去 最后不能有寝室留空 现请你写程序完成寝室的自动分配 分配规则如下 男女生不能混住 不允许单人住
  • 交换机与路由器技术-35-端口多路复用PAT

    目录 一 端口多路复用 PAT 1 1 概述 1 2 端口映射 服务器映射 1 3 配置端口多路复用 1 3 1 方式一 使用单独的公网IP 第一步 定义内网和外网接口 第二步 定义内网地址范围 外网地址 1 使用ACL 允许某个范围的内网
  • 2020年十二月ccf-csp认证总结(内附个人题解)

    吐槽一下这个在线评测功能 平均四十分钟才能看到提交结果 本次成绩为100 100 0 30 20 最后两道题都是骗的分 提醒自己附代码的神奇图片 希望寒假有时间把没做出来的题目也再做一遍 csp官网更新出题目后 有路过的可以提醒我把题目加上
  • PAT 1033 旧键盘打字

    题目链接 请点击 思路 用string定义两个字符串 然后比较就可以了 然而 开始直接用cin gt gt str1 gt gt str2 导致有部分测试点始终未过去 后来参考他人的博客才发现这里应该用getline原因就在于第一行可能是空
  • 1041. 考试座位号(15)

    每个PAT考生在参加考试时都会被分配两个座位号 一个是试机座位 一个是考试座位 正常情况下 考生在入场时先得到试机座位号码 入座进入试机状态后 系统会显示该考生的考试座位号码 考试时考生需要换到考试座位就座 但有些考生迟到了 试机已经结束
  • PAT 1103 Integer Factorization

    题目的意思是给定n k p 求是否存在k个正整数 每个数的p次幂相加的结果等于n 有 输出k个数相加的结果最大的那个 如果有多个 输出序列从大到小排最大的那个 从左往右比较 若 i lt l a i
  • 1012 数字分类

    1012 数字分类 题目 输入格式 输入样例 输出样例 代码 小结 题目 给定一系列正整数 请按要求对数字进行分类 并输出以下 5 个数字 A 1
  • 集合相似度(PAT)

    题目链接 https www patest cn contests gplt L2 005 一开始用map超时了 总是有一组数据超时 当时觉得很纳闷 后来学到了 其实set也是可以开数组的 map也是 include
  • 1059 C语言竞赛(PAT 乙级 C++实现)

    1059 C语言竞赛 20 point s C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛 既然竞赛主旨是为了好玩 颁奖规则也就制定得很滑稽 0 冠军将赢得一份 神秘大奖 比如很巨大的一本学生研究论文集 1 排名为素数的学生将赢得最好
  • PAT_B_1094 谷歌的招聘 (20 分)【测试点3,5】

    本题要求你编程解决一个更通用的问题 从任一给定的长度为 L 的数字中 找出最早出现的 K 位连续数字所组成的素数 输入格式 输入在第一行给出 2 个正整数 分别是 L 不超过 1000 的正整数 为数字长度 和 K 小于 10 的正整数 接
  • 1033 旧键盘打字 (20分)

    这道题很坑的一点就是 有可能坏掉的键盘是空串 所有的键都是好的 如下测试用例 input NULL abcdefg output abcdefg 所以 用字符串数组的不能直接用scanf s str 读入 用string的也不能直接用cin
  • PAT乙级题解—— 1071 小赌怡情 (15分)

    常言道 小赌怡情 这是一个很简单的小游戏 首先由计算机给出第一个整数 然后玩家下注赌第二个整数将会比第一个数大还是小 玩家下注 t 个筹码后 计算机给出第二个数 若玩家猜对了 则系统奖励玩家 t 个筹码 否则扣除玩家 t 个筹码 注意 玩家
  • 1032. 挖掘机技术哪家强(20)

    为了用事实说明挖掘机技术到底哪家强 PAT组织了一场挖掘机技能大赛 现请你根据比赛结果统计出技术最强的那个学校 输入格式 输入在第1行给出不超过105的正整数N 即参赛人数 随后N行 每行给出一位参赛者的信息和成绩 包括其所代表的学校的编号
  • 1074 Reversing Linked List (25 point(s))

    1074 Reversing Linked List 25 point s Given a constant K and a singly linked list L you are supposed to reverse the link
  • 1055. 集体照 (25) PAT乙级真题

    1055 集体照 25 拍集体照时队形很重要 这里对给定的N个人K排的队形设计排队规则如下 每排人数为N K 向下取整 多出来的人全部站在最后一排 后排所有人的个子都不比前排任何人矮 每排中最高者站中间 中间位置为m 2 1 其中m为该排人
  • 8-0. 查找整数(10)

    本题要求从输入的N个整数中查找给定的X 如果找到 输出X的位置 从0开始数 如果没有找到 输出 Not Found 输入格式 输入在第1行中给出2个正整数N lt 20 和X 第2行给出N个整数 数字均不超过长整型 其间以空格分隔 输出格式

随机推荐

  • Springboot实现发送邮箱

    Springboot实现发送邮箱 直接上代码了 简单粗暴 太简单 不要兴奋 一 pom文件
  • 基于Umi搭建的个人Dva脚手架(一) - 框架说明

    1 基本概念阐述 阅读本文前 你需要对react dva umi以及ant design的有一定的认识 具体的相关知识都可以参考官方文档 Umi 中文可发音为乌米 是一个可插拔的企业级 react 应用框架 是蚂蚁金服的底层前端框架 具体的
  • 语义化版本(SemVer)的范围

    转自 http www u396 com semver range html 在使用 Node js 和 Bower 的时候 其中的 package json 和 bower json 都会有 dependencies devDepende
  • 如何将jar加入自己的maven本地仓库

    本文介绍如何将本地的jar加入到自己的maven本地仓库中 直接在pom文件引用依赖即可 无需手动添加jar文件 一 检查mvn命令 有同学没有配置过maven环境变量 使用mvn命令时 会提示 mvn 不是内部或外部命令 也不是可运行的程
  • 前端框架react----条件渲染、循环处理、受控组件

    一 条件渲染 很多时候 用户可能会有多种操作需求 这个时候就需要我们对不同的操作选择不同的执行逻辑 在react中 你可以创建不同的组件来封装各种你需要的行为 react中的条件渲染和JavaScript中的一样 使用JavaScript运
  • 怎么修改服务器里面的权限设置,怎样修改上传服务器文件的权限设置

    怎样修改上传服务器文件的权限设置 内容精选 换一换 执行chmod R 777 导致CentOS云服务器根目录权限设置成777 系统中的大部分服务以及命令无法使用 此时可通过系统自带的getfacl命令来拷贝和还原系统权限 本节操作介绍误操
  • 电脑键盘练习_用键盘打字怎样才能练得快,有什么窍门没?

    键盘打字速度提升是没有绝对的窍门 唯一的方法是熟悉好键盘布局后勤加练习 熟练指法和输入 练习的方法还可以使用专门的打字练习软件 比如说是使用 金山打字通 以下是详细介绍 1 金山打字通是专门为初学电脑输入者而开发的一款软件 金山打字通可根据
  • Malformed version string ‘~‘: invalid character(s)

    conda upgrade n base c defaults override channels conda
  • 数学建模(生物数学篇)之 MATLAB在求解高阶微分方程时的应用实例(3/3)

    一 实验目的 理解并掌握利用MATLAB在求解高阶微分方程时的应用 二 实验内容 求解高阶微分方程时 可想办法将其变为几个一阶微分方程组成的微分方程组 例1 选择变量 可得出一阶微分方程组为 例2 设系统模型以二元方程组形式给出 试将其转化
  • IDEA实现 springmvc的简单注册登录

    IDEA实现 springmvc的简单登录 1 基本环境搭建 spring简介 SpringMVC框架是以请求为驱动 围绕Servlet设计 将请求发给控制器 然后通过模型对象 分派器来展示请求结果视图 其中核心类是DispatcherSe
  • 我同情那些不写单元测试的傻瓜

    J Timothy King写了一篇很棒的文章 先写单元测试的12个好处 Twelve Benefits of Writing Unit Tests First 遗憾的是 他在文章最后说的话完全是画蛇添足 然而 如果你不愿意改掉先写代码的老
  • java实现【国密SM4】加密解密-CBC模式

    网上有很多个版本 但是算法都是一样的 有可能使用相同的参数来加密解密文本得到的加密字符是不一样的 在此统一说下 SM4实现的功能 商业加密 SM4功能是加密文本 例如客户A把字符串 hello world 通过SM4的cbc模式加密后得到密
  • Kali Hyper-V安装正常启动后 黑屏 只能进命令模式

    问题 Hyper V安装虚拟机Kali系统一切安装正常 没有出现错误 安装成功后重启 只能进入命令模式 tt1 tt6 进不去GUI桌面 尝试 一代二代虚拟硬盘都试过 同样问题 只能开进后进入命令模式 在命令模式下一切运行正常 也修复过系统
  • 深入理解 Python 中的元类

    1 类是如何产生的 类是如何产生 这个问题肯定很傻 实则不然 很多初学者只知道使用继承的表面形式来创建一个类 却不知道其内部真正的创建是由type来创建的 type 这不是判断对象类型的函数吗 是的 type通常用法就是用来判断对象的类型
  • 快速查看自己的全部文章,帮助下找不到私人发布的小伙伴

    刚刚加入csdn 不知道自己发布过的文章在哪 可以点击链接直接查看 CSDN
  • 深度学习神经网络优化器总结

    深度学习神经网络优化器有以下几种 1 梯度下降法 Gradient Descent 2 随机梯度下降法 Stochastic Gradient Descent 3 批量梯度下降法 Batch Gradient Descent 4 动量法 M
  • win10录完指纹要求验证pin,输完pin闪退

    win10用了几个月指纹会失效 重新设置指纹会因为无法设置pin码而失败 目前解决方案将Credential Manager服务改为自动并启用 每个人指纹失效的原因不一样 我把网上能搜到的都试了一遍不行 这是自己摸索的 不一定能解决每个人的
  • Linux 使用 cp 命令强制覆盖功能

    我们平时在 Linux 中使用 cp 命令时 当把文件从一个目录复制到另一个目录 且目录中具有同名文件时 系统会提示输入 y 来确认是否覆盖同名文件 如果文件少的话 也无关紧要 但文件多的话 要一个一个确认简直太累了 更要命的是 即使我们加
  • 蓝牙模块怎么使用_有线音箱完美升级蓝牙功能,只需2杯咖啡钱!

    文章作者 噩梦飘雷结束一天繁忙的工作 相信很多人都跟小值一样 喜欢打开手机 播放起自己喜欢的歌单 音乐响起 就能双脚离地 暂时漂浮于眼前的苟且之上 让自己喘口气 当然比起戴上耳机安静地狂欢 外放音乐 让音符充满房间 是种更身临其境的享受 在
  • 【PAT甲级】1074 Reversing Linked List (25 point(s))

    Given a constant K K K and a singly linked list L L L you are supposed to reverse the links of every