首页 > 其他分享 >1110 区块反转——PAT乙级

1110 区块反转——PAT乙级

时间:2024-08-23 19:50:49浏览次数:11  
标签:99999 结点 PAT start int 乙级 1110 区块 88666

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

标签:99999,结点,PAT,start,int,乙级,1110,区块,88666
From: https://blog.csdn.net/flyidj/article/details/141470543

相关文章

  • 读论文《Behavior Pattern Mining-based Multi-Behavior Recommendation》
    论文地址:arxiv.org/pdf/2408.12152v1项目地址:GitHub-rookitkitlee/BPMR基于行为模式挖掘的多行为推荐:论文提出了一种新颖的多行为推荐算法(BPMR),旨在通过分析用户和项目之间的复杂交互模式来提高推荐系统的有效性。这种方法特别关注于用户除了购买之外的其他行为,例如页面浏览......
  • Python - Concurrency and Asynchronous Patterns
    Concurrencyallowsyourprogramtomanagemultipleoperationssimultaneously,leveragingthe fullpowerofmodernprocessors.It’sakintoachefpreparingmultipledishesinparallel,eachstep orchestratedsothatalldishesarereadyatthesametime.......
  • python 04-标准库:pathlib模块
    pathlib模块pathlib模块‌:是面向对象的文件系统路径操作库,提供接口来处理文件路径。Path是主类Path:Path对象表示文件或目录的路径,Path类会自动选择PosixPath或WindowsPath,具体取决于我们的操作系统......
  • python03-标准库 第三方库-pathlib模块
    python标准库:Python自带的一组模块和库,这些模块和库提供了Python编程所需的基础功能和工具https://docs.python.org/zh-cn/3/library/index.html?eqid=8ca0b3ea000067990000000264800802Python包索引:即PyPI(PythonPackageIndex),是一个仓库,存放了许多可以通过pip安装的独......
  • 【工程应用十一】基于PatchMatch算法的图像修复研究(inpaint)。
      这个东西是个非常古老的算法了,大概是2008年的东西,参考资料也有很多,不过基本上都是重复的。最近受一个朋友的需求,前后大概用了二十多天时间去研究,也有所成果,在这里简单的予以记录。  图像修复这个东西目前流行的基本都是用深度学习来弄了,而且深度学习的效果还是非常不错的(......
  • NAT地址转换中的PAT(地址复用)模式
    简介         在数据进行传输时,必要经过公网IP才能够传到其他地方(除了局域网),在局域网中想要将数据进行传输到外网,又不浪费公有IP的前提下,NAT地址转换应运而生。    NAT地址转换分为静态地址转换,动态地址转换,以及PTA地址转换,前两种只能一对一,也就说一......
  • Python - Architectural Design Patterns
    Architecturaldesignpatterns provideatemplateforsolvingcommonarchitecturalproblems,facilitatingthedevelopmentofscalable, maintainable,andreusablesystems.Technicalrequirements•FortheMicroservicespatternsection,installthefollowing......
  • 洛谷P3528 [POI2011] PAT-Sticks && 数据结构之堆
    传送门:P3528[POI2011]PAT-Sticks与买桂花同载酒,终不似,少年游这是现在为止洛谷上的最优解!!翻译题目描述小约翰尼的爷爷奶奶送给他一份生日礼物。这份礼物是一盒长度和颜色各异的木棍。约翰尼想知道,在他得到的这组木棍中,是否存在三根木棍能够组成一个三边颜色各不相同的三......
  • [Design Pattern] Memento Pattern
    //memento.jsimport{TodoList}from"./classes.js";exportconstTodoHistory={history:[],push(state){if(state){//alwayspushanewSettoavoidreferenceissuesthis.history.push(newSet([...state]));}......
  • PAT乙级1032 || 挖掘机技术哪家强(C示例)
    挖掘机技术哪家强为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开......