GPLT天梯赛 L2-022. 重排链表
L2-022. 重排链表
给定一个单链表 L1→L2→...→Ln-1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln-1→L2→...。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。
输入格式:
每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数,即正整数N (<= 105)。结点的地址是5位非负整数,NULL地址用-1表示。
接下来有N行,每行格式为:
Address Data Next
其中Address是结点地址;Data是该结点保存的数据,为不超过105的正整数;Next是下一结点的地址。题目保证给出的链表上至少有两个结点。
输出格式:
对每个测试用例,顺序输出重排后的结果链表,其上每个结点占一行,格式与输入相同。
输入样例:
- 00100 6
- 00000 4 99999
- 00100 1 12309
- 68237 6 -1
- 33218 3 00000
- 99999 5 68237
- 12309 2 33218
输出样例:
- 68237 6 00100
- 00100 1 99999
- 99999 5 12309
- 12309 2 00000
- 00000 4 33218
- 33218 3 -1
不会链表的渣渣,各种STL... 模拟
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<string>
- #include<map>
- #include<vector>
- #include<deque>
- #include<algorithm>
- #define MAX 100005
- using namespace std;
- struct rec{
- char add[];
- int dat;
- char nex[];
- }rec[MAX];
- struct Node{
- char add[];
- int dat;
- }node;
- vector<Node> v[MAX];
- deque<Node> q;
- int main()
- {
- int t,n,i;
- char add[];
- map<string,int> mpadd;
- map<string,int> mpdat;
- scanf(" %s %d",add,&n);
- t=;
- for(i=;i<=n;i++){
- scanf(" %s %d %s",rec[i].add,&rec[i].dat,rec[i].nex);
- if(!mpadd[rec[i].add]) mpadd[rec[i].add]=++t;
- if(!mpdat[rec[i].add]) mpdat[rec[i].add]=rec[i].dat;
- if(!mpadd[rec[i].nex]) mpadd[rec[i].nex]=++t;
- }
- for(i=;i<=n;i++){
- strcpy(node.add,rec[i].nex);
- node.dat=mpdat[rec[i].nex];
- v[mpadd[rec[i].add]].push_back(node);
- }
- while(strcmp(add,"-1")!=){
- strcpy(node.add,add);
- node.dat=mpdat[add];
- q.push_back(node);
- strcpy(add,v[mpadd[add]][].add);
- }
- int c=;
- while(q.size()){
- c++;
- if(c==){
- printf("%s %d",q.back().add,q.back().dat);
- q.pop_back();
- }
- else if(c&){
- printf(" %s\n%s %d",q.back().add,q.back().add,q.back().dat);
- q.pop_back();
- }
- else{
- printf(" %s\n%s %d",q.front().add,q.front().add,q.front().dat);
- q.pop_front();
- }
- }
- printf(" -1\n");
- return ;
- }
GPLT天梯赛 L2-022. 重排链表的更多相关文章
- 团体程序设计天梯赛-练习集L2-002. 链表去重
L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...
- PTA天梯赛L2
L2-001 紧急救援 题意:就是给你一张n<500的图:让你求最短路径,最短路条数,以及路径: 做法,先用dijkstra求最短路,然后dfs找最短路条数,以及点权的最大值: 一般dfs不就可 ...
- L1-023 输出GPLT (20 分) java题解 GPLT天梯赛防坑技巧
上题目先 给定一个长度不超过10000的.仅由英文字母构成的字符串.请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符.当然,四种字符(不区分大小写)的个数不一定是一样多的 ...
- pat甲级 团体天梯赛 L2-022. 重排链表
L2-022. 重排链表 时间限制 500 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个单链表 L1→L2→...→Ln-1→Ln,请 ...
- 第四届CCCC团体程序设计天梯赛 后记
一不小心又翻车了,第二次痛失200分 1.开局7分钟A了L2-3,一看榜已经有七个大兄弟排在前面了,翻车 * 1 2.把L1-3 A了18分,留了两分准备抢顽强拼搏奖,最后五秒钟把题过了,万万没想到还 ...
- 团体程序设计天梯赛(CCCC) L3009 长城 方法证明
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code
- L2-022. 重排链表
L2-022. 重排链表 时间限制 500 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个单链表 L1→L2→...→Ln-1→Ln,请 ...
- PAT L1 049 天梯赛座位分配
天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情.为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] 支队伍,每队 10 位 ...
- PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)
PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++: 欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...
随机推荐
- ios Symbol(s) not found for architecture arm64总结 含隐藏错误cocoapods
一.通用 报错:Desktop/project/ASDF/WEIXIN/libWeChatSDK.a (3 slices) Undefinedsymbols for architecture arm6 ...
- wepy error Parsing error: Unexpected token :
mpBMCwepy\wepy.config.js eslint 信息 全局重装wepy-clinpm install wepy-cli -g -registry=https://registry.n ...
- TVirtualStringTree的Minimal例子学习
预步骤第一步,定义数据结构type PMyRec = ^TMyRec; TMyRec = record Caption: WideString; end;预步骤第二步,规定取得节点数据时候的大小pro ...
- 24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作
重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/37596763 网格动作类似于动作特效,能够实现翻转. ...
- 破解powerdesigner教程
点Tool
- 常见的CSS命名
1:header(头部)logo topbar lang search topmenu banner nav headbox active(活动的) selectselectTop selectLi ...
- Oracle约束的使用
--5个约束,主键约束.外键约束.唯一约束.检查约束.非空约束. --添加主键约束 Alter table table_name Add constraints constraint_name Pri ...
- jQuery Validate 插件为表单提供了强大的验证功能
之前项目开发中,表单校验用的jQuery Validate 插件,这个插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的 ...
- 检测UTF-8编码
在PHP检测字符串是否是UTF-8编码的时候,很多人在使用mb_detect_encoding的时候,经常遇到检测不准的问题,下面的方法可以准确检测编码是否是UTF-8 function check_ ...
- 分享知识-快乐自己:Excel快速导入Oracle 数据库
需求: oracle 数据库有一个student表,现有一个excel表:student.xlsx,需导入oracle数据库student表中. student表的拥有者是c##MLQ1 密码为:x ...