PAT1074——Reversing Linked List
来源:互联网 发布:浙江贰贰网络稳定吗 编辑:程序博客网 时间:2024/06/08 00:39
答案上面是整体排序,然后分段显示,需要考虑的情况太多,还不如在写order的时候就将排序考虑进去,这样就没有其他需要考虑的情况了,这样不容易犯错。
唯一的问题就是需要遍历两遍链表,第一遍获得最大有效数目,然后按照顺序写order,第二遍将需要反序的order写入即可。
#define maxn 100010struct Node{ int address; int next; int num; int order; Node(){ order = 100000; }}node[maxn];int start, n, k;bool cmp(Node a, Node b){ return a.order < b.order;}int main(){ cin>>start>>n>>k; int addr, num, ne, num_max = 0; for(int i = 0; i<n; i++){ scanf("%d %d %d", &addr, &num, &ne); node[addr].num = num; node[addr].next = ne; node[addr].address = addr; } int next_temp = start; while(next_temp != -1){ node[next_temp].order = num_max++; next_temp = node[next_temp].next; } int group = floor((double)num_max/k); next_temp = start; for(int i = 0; i<group; i++){ int order_temp = (i+1)*k-1; while(order_temp >= i*k){ node[next_temp].order = order_temp--; next_temp = node[next_temp].next; } } sort(node, node+maxn, cmp); for(int i = 0; i<num_max-1; i++){ printf("%05d %d %05d\n", node[i].address, node[i].num, node[i+1].address); } printf("%05d %d %d\n", node[num_max-1].address, node[num_max-1].num, -1); return 0;}
阅读全文
0 0
- PAT1074——Reversing Linked List
- PAT1074:Reversing Linked List Java语言实现
- 1074. Reversing Linked List
- Reversing Linked List
- 1074.Reversing Linked List
- Reversing Linked List (25)
- Reversing Linked List
- Reversing Linked List
- Reversing Linked List (25)
- PAT:Reversing Linked List
- 1074. Reversing Linked List
- Reversing Linked List
- PTA Reversing Linked List
- Reversing Linked List
- PTA--Reversing Linked List
- 1074. Reversing Linked List
- 1074. Reversing Linked List
- 1074. Reversing Linked List
- 非极大值抑制原理
- POJ2774(二分+哈希)
- 从小白开始入门python+tensorflow+cnn做人脸性别识别(一)
- hdu2774(后缀数组 最长公共子串)Long Long Message
- 关于递归算法的几个例子(C语言)
- PAT1074——Reversing Linked List
- spring mvc controller4中配置方式
- 【Java多线程】多线程案例:使用多线程向用户推送短信
- 进程状态(含状态变迁图)
- 采用C++随机数的生成
- 【Luogu P1164】小A点菜
- JDK和Tomcat安装和配置的图文教程【转】
- 【HDU6154 2017中国大学生程序设计竞赛
- 51nod 2006 二分图最大匹配