1110 区块反转——PAT乙级

2024-08-23 19:52
文章标签 区块 反转 pat 乙级 1110

本文主要是介绍1110 区块反转——PAT乙级,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

给定一个单链表 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

 solution:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
const int maxn=1e5+5;
int main()
{int start,n,k;cin>>start>>n>>k;int data[maxn],next[maxn];int cnt=0;for(int i=0;i<n;i++){int tmp;cin>>tmp;cin>>data[tmp]>>next[tmp];}vector<pair<int,int> >list;while(start!=-1){cnt++;list.push_back({start,data[start]});start=next[start];}vector<pair<int,int> >ans;if(cnt<=k){ans=list;}else{int tmp=cnt%k;if(tmp)for(int i=cnt-tmp;i<cnt;i++){ans.push_back({list[i].first,list[i].second}); }cnt-=tmp;for(int i=cnt-k;i>=0;i-=k){for(int j=0;j<k;j++){ans.push_back({list[i+j].first,list[i+j].second});//cout<<i+j<<endl;}}}//cout<<list[2].first<<' '<<list[2].second;for(int i=0;i<ans.size()-1;i++){printf("%05d %d %05d\n",ans[i].first,ans[i].second,ans[i+1].first);}printf("%05d %d -1\n",ans[ans.size()-1].first,ans[ans.size()-1].second);
}

这篇关于1110 区块反转——PAT乙级的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100346

相关文章

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

数据库遇上知识图谱、区块链、深度学习

参考资料: https://zhuanlan.zhihu.com/p/33381916 https://www.zuozuovera.com/archives/1062/ 东南大学D&Intel Lab相关ppt 数据库的核心概念——表示、存取、查询 有了数据库是干什么,大概实现的逻辑,特点,才能引申出对当今这些新技术的对比、适应和发展。 目的:研究数据表示、存取数据模型:表示数据的模型,通

MapReduce算法 – 反转排序(Order Inversion)

译者注:在刚开始翻译的时候,我将Order Inversion按照字面意思翻译成“反序”或者“倒序”,但是翻译完整篇文章之后,我感觉到,将Order Inversion翻译成反序模式是不恰当的,根据本文的内容,很显然,Inversion并非是将顺序倒排的意思,而是如同Spring的IOC一样,表明的是一种控制权的反转。Spring将对象的实例化责任从业务代码反转给了框架,而在本文的模式中,在map

区块链技术介绍

一.概述 1.什么是区块链?   区块链是一种分布式数据库技术,它以链式数据结构的形式存储数据,每个数据块与前一个数据块相关联,形成了一个不断增长的数据链。每个数据块中包含了一定数量的交易信息或其他数据,这些数据经过加密和验证后被添加到区块链上。由于每个数据块都包含了前一个数据块的哈希值,因此任何尝试篡改数据的行为都会被迅速地检测出来。 2.区块链技术的起源   区块链的起源可以追溯到

【LeetCode】07.整数反转

题目要求 解题思路 这道题的难点在于怎么判断越界,我们无法直接与最大值或最小值比较,但是由于每一次我们的ret都需要乘10这个特性来使用ret与最大值或最小值除10进行比较 代码实现 class Solution {public:int reverse(int x) {int ret=0;while(x){//处理越界情况if(ret<INT_MIN/10||ret>INT_MAX

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

孙宇晨:区块链领域的时代先锋,每一步引领未来趋势

​孙宇晨,这位在区块链领域崭露头角的青年企业家,凭借着敏锐的洞察力和坚定的决心,成为了数字经济时代的领航者。他的每一步,都走在技术创新的最前沿,推动着区块链技术的发展与应用,给全球经济带来了深远的影响。 从创业初期到现在,孙宇晨始终紧跟时代脉搏,勇敢地探索未知的领域。他对区块链技术的热情源于他对去中心化理念的深刻理解和认同。在区块链技术还处于初期发展阶段时,孙宇晨便看到了它将如何改变世界。区

【区块链 + 人才服务】链学汇教育区块链平台 | FISCO BCOS应用案例

链学汇教育区块链平台立足于教育行业区块链需求,结合真实应用场景和区块链技术,采取校企共建形式,构建基于产业发展及创新需求的实践教学和实训实习环境。目前已应用于东莞理工学院粤台产业科技学院,实现: 1. 通过“学、研、训、产”四位一体的应用人才培养模式,实践基地打造成为校企合作应用型人才培养示范基地; 2. 结合企业在区块链应用落地的丰富经验,将多种现实生活的场景与实训平台相结合,以丰富、趣味性