PAT甲题题解-1052. Linked List Sorting (25)-排序
三个注意点:
1.给出的n个节点并不一定都在链表中
2.最后一组样例首地址即为-1
3.输出地址的时候一直忘记前面要补0。。。
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <string.h>
using namespace std;
const int maxn=+;
struct Node{
int addr;
int val;
int to;
bool operator<(const Node tmp)const{
return val<tmp.val;
}
}linked[maxn],node[maxn];
int main()
{
int n,first;
int a,b,c;
scanf("%d %d",&n,&first);
for(int i=;i<n;i++){
scanf("%d %d %d",&a,&b,&c);
linked[a].addr=a;
linked[a].val=b;
linked[a].to=c;
}
int cnt=;
while(first!=-){
node[cnt].addr=linked[first].addr;
node[cnt].val=linked[first].val;
node[cnt].to=linked[first].to;
cnt++;
first=linked[first].to;
}
sort(node,node+cnt);
if(cnt==){
printf("0 -1\n"); //最后一个样例有首地址为-1的情况。。。
return ;
}
printf("%d %05d\n",cnt,node[].addr);
for(int i=;i<cnt;i++){
printf("%05d %d ",node[i].addr,node[i].val);
if(i==cnt-)
printf("-1\n");
else
printf("%05d\n",node[i+].addr);
}
return ;
}
PAT甲题题解-1052. Linked List Sorting (25)-排序的更多相关文章
- PAT甲题题解-1012. The Best Rank (25)-排序水题
排序,水题因为最后如果一个学生最好的排名有一样的,输出的课程有个优先级A>C>M>E那么按这个优先级顺序进行排序每次排序前先求当前课程的排名然后再与目前最好的排名比较.更新 至于查询 ...
- PAT甲题题解-1062. Talent and Virtue (25)-排序水题
水题,分组排序即可. #include <iostream> #include <cstdio> #include <algorithm> #include < ...
- PAT甲题题解-1036. Boys vs Girls (25)-找最大最小,大水题
题意:给出n个人的姓名.性别.ID.分数,让你找出其中哪个妹纸分数最高.哪个汉子分数最低.以及他们的差如果没有妹纸或者汉子,则对应输出Absent,差用NA代替. 就是for一遍找最大最小值,水题 # ...
- PAT甲题题解-1125. Chain the Ropes (25)-贪心水题
贪心水题,每次取最短的两个绳子合并,长度缩减成一半 #include <iostream> #include <cstdio> #include <algorithm&g ...
- PAT甲题题解-1007. Maximum Subsequence Sum (25)-求最大子区间和
题意:给出n个数,求最大连续的子区间和,并且输出该区间的第一个和最后一个数. 如果所有数都小于0,那么则输出0,第一个数和最后一个数. 看数据k的范围,就知道肯定不能两层for循环来求区间和,O(n^ ...
- PAT甲题题解-1009. Product of Polynomials (25)-多项式相乘
多项式相乘 注意相乘结果的多项式要开两倍的大小!!! #include <iostream> #include <cstdio> #include <algorithm& ...
- PAT甲题题解-1013. Battle Over Cities (25)-求联通分支个数
题目就是求联通分支个数删除一个点,剩下联通分支个数为cnt,那么需要建立cnt-1边才能把这cnt个联通分支个数求出来怎么求联通分支个数呢可以用并查集,但并查集的话复杂度是O(m*logn*k)我这里 ...
- PAT甲题题解-1017. Queueing at Bank (25)-模拟
有n个客户和k个窗口,给出n个客户的到达时间和需要的时长有空闲的窗口就去办理,没有的话就需要等待,求客户的平均时长.如果在8点前来的,就需要等到8点.如果17点以后来的,则不会被服务,无需考虑. 按客 ...
- PAT甲题题解-1040. Longest Symmetric String (25)-求最长回文子串
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789177.html特别不喜欢那些随便转载别人的原创文章又不给 ...
随机推荐
- Spirng MVC 重定向传递对象
在 Spring MVC 中我们会经常遇到重定向. @RequestMapping("/order/saveorder.html") public String saveOrder ...
- python中for、while循环、if嵌套的使用
1.for循环字符串就是一个有序的字符序列for i in range(5): print(i)定义一个死循环while True: pass2.break和continue肯定需要和 ...
- 【转】Python 可视化神器-Plotly Express
转自:https://mp.weixin.qq.com/s/FNpNJSMK5Vs8pwi0PbbBzw 说明:图片无法直接复制,请查看原文 导读:Plotly Express 是一个新的高级 Pyt ...
- 配置使用;yum安装slatstack的master,minion<at>centos6_x86_64
使用: ####################################### 配置: ####################################### 安装: 服务端安装: [ ...
- STL 1–迭代器std::begin()和std::end()使用
迭代器是一个行为类似于指针的模板类对象.只需要迭代器iter指向一个有效对象,就可以通过使用*iter解引用的方式来获取一个对象的引用.通常会使用一对迭代器来定义一段元素,可以是任意支持迭代器对象的元 ...
- 人人都是产品经理<1.0>
用了大概2个月的时间,细细的读完了<人人都是产品经理>这本书,受益良多,期间也做了一些笔记,都在前面的博客————products系列中... 当然,更多的收获,还是沉滞在书中的注释,以及 ...
- Ubuntu忘记密码的解决办法
ubuntu忘记root密码怎么办?如果普通用户忘记了怎么办 第一种方法: 无论你是否申请了root帐号,或是普通账号密码忘记了都没有问题的! 1.重启ubuntu,随即长按shift进入grub菜单 ...
- 搭建HBase的本地模式、伪分布式、全分布式和HA模式
一.安装HBase: 我这里选择的是hbase-1.3.1-bin.tar.gz版本解压HBase: tar -zxvf hbase-1.3.1-bin.tar.gz -C ~/training 配置 ...
- CM (Cloudera Manager) 的安装,便于CDH的离线部署
一.准备工作 主机个数:n台 操作系统:CentOS 6.5 安装所需软件包: CM: cloudera-manager-el6-cm5.4.3_x86_64.tar.gz CDH parcel: C ...
- 20155220 《网络对抗》Exp 8 Web基础
20155220 <网络对抗>Exp 8 Web基础 基础问题回答 实践内容 1.Web前端HTML 配置环境 正常安装.启动Apache 安装:sudo apt-get install ...