【PAT乙级】1025 反转链表 (25 分)
题目地址
最后一个测试点:不是所有的点都是合法的,有的结点地址是负数。
#include<cstdio>
#include<iostream>
#include<map>
#include<stack>
using namespace std;
const int N=1e5+10;
struct node
{int id;int val;
}Node[N];
map<int,int>mp,v;
int start,n,k;
int main(void)
{cin>>start>>n>>k;for(int i=0;i<n;i++){int a,b,c; cin>>a>>b>>c;mp[a]=c,v[a]=b;}int index=0;while(1){Node[index].id=start,Node[index].val=v[start];start=mp[start];if(Node[index].id>=0) index++;if(start==-1) break;}start=0;while(1){if(start+k>index) break;stack<node>st;for(int i=start;i<start+k;i++) st.push(Node[i]);for(int i=start;i<start+k;i++) Node[i]=st.top(),st.pop();start=start+k;}for(int i=0;i<index;i++){printf("%05d %d ",Node[i].id,Node[i].val);if(i+1==index) printf("-1\n");else printf("%05d\n",Node[i+1].id);}return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
struct node
{int id,val;
}temp;
int start,n,k;
map<int,int>val,nxt;
vector<node>ans;
int main(void)
{cin>>start>>n>>k;for(int i=0;i<n;i++){int a,b,c; cin>>a>>b>>c;val[a]=b,nxt[a]=c;}while(start!=-1){temp.id=start,temp.val=val[start];ans.push_back(temp);start=nxt[start];}int index=0;while(1){if(index+k>ans.size()) break;reverse(ans.begin()+index,ans.begin()+index+k);index+=k;}for(int i=0;i<ans.size();i++){printf("%05d %d ",ans[i].id,ans[i].val);if(i+1==ans.size()) cout<<-1;else printf("%05d\n",ans[i+1].id);}return 0;
}
【PAT乙级】1025 反转链表 (25 分)相关推荐
- PAT乙级1025反转链表 25(分)
1025 反转链表 (25 分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为3→2→1→6→5→ ...
- PAT | 1025 反转链表 (25分)【超时问题 + 柳神代码】
1025 反转链表 (25分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→ ...
- C++学习之路 | PTA乙级—— 1025 反转链表 (20分)(精简)
1025 反转链表 (25 分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5 ...
- 1025 反转链表 (25 分)
1025 反转链表 (25 分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5 ...
- 【JAVA】PAT 乙级 1025 反转链表(测试点5超时,牛客网通过)
[JAVA]PAT 乙级 1025 反转链表(测试点5超时,牛客网通过) 题目链接 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5 ...
- c语言最大字符1025,1025 反转链表 (25 分)C语言
题目描述 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为 3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5 ...
- [PAT乙级]1025 反转链表 (思路+精简代码)
1025 反转链表 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K ...
- PAT乙级|C语言|1025 反转链表 (25分)
题目 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输 ...
- 【PAT (Basic Level) 】1025 反转链表 (25 分)
给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输出应该 ...
最新文章
- html文字垂直居中_文字垂直居中
- mac使用被动ftp模式(pasv)_网络安全工程师与白帽子黑客教你:Kali Linux之使用Metasploit进行FTP服务扫描实战...
- 深入分析 Flutter 初始化流程
- 整型数据在内存中的存放形式
- I/O多路复用:select、poll和epoll详解
- Vue - 去除控制台“你正在开发模式下运行Vue”的警告
- mysql三表联合更新_mysql三表连接update
- Linux项目日报,1Password推出Linux版本 现已进入公开预览阶段
- python gridsearch_Python超参数自动搜索模块GridSearchCV上手
- Linux tmp目录自动清理 及解决方法
- 4019 设备树 Linux device tree 概述
- 用php求常见图形的面积,技巧:数学图形面积计算的十种方法!
- matlab 把连续函数离散,连续传递函数离散化
- 【模式串匹配】Aho-Corasick algorithm - AC字符串匹配算法实现与测试【Python】
- c语言与多字节编码,什么是单字节,双字节和多字节编码
- exit()和_exit()两个函数的区别
- 什么叫“我是搞计算机的”?
- 双精度移位指令SHLD,SHRD
- 数据结构与算法--第二章pro题解
- 2D metric和3D mesh的静态metric