1052.Linked List Sorting (25)
来源:互联网 发布:嘉合信网络信息技术 编辑:程序博客网 时间:2024/06/05 23:47
1052.Linked List Sorting (25)
pat-al-1052
2017-02-26
- 最后一个测试点超时,本来以为是开了一个数组、一个vector太大了,就去掉了一个,加上了flagValid判断,排序的时候也要考虑flagValid。结果还是超时,看了书才知道还有全部结点都无效的情况,要特殊判断一下
- 坑:全部无效时,输出的是0 -1
/** * pat-al-1052 * 2017-02-26 * Cpp version * Author: fengLian_s */#include<stdio.h>#include<algorithm>using namespace std;struct NODE{ int addr; int key; int next; int flagValid;}newNode, list[100010];bool cmp(NODE a, NODE b){ if(a.flagValid == 0 || b.flagValid == 0) return a.flagValid > b.flagValid; else return a.key < b.key;}int main(){ freopen("in.txt", "r", stdin); int n, start, tmp; scanf("%d%d", &n, &start); for(int i = 0;i < n;i++) { scanf("%d", &tmp); list[tmp].addr = tmp; scanf("%d%d", &list[tmp].key, &list[tmp].next); list[tmp].flagValid = 0; } int cnt = 0, index = start; while(index != -1) { list[index].flagValid = 1; cnt++; index = list[index].next; } if(cnt == 0) { printf("0 0\n"); return 0; } sort(list, list+100010, cmp); for(int i = 0;i < cnt-1;i++) { list[i].next = list[i+1].addr; } list[cnt-1].next = -1; printf("%d %05d\n", cnt, list[0].addr); for(int i = 0;i < cnt;i++) { if(list[i].next != -1) printf("%05d %d %05d\n", list[i].addr, list[i].key, list[i].next); else printf("%05d %d -1\n", list[i].addr, list[i].key); } return 0;}
-FIN-
0 0
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- Cobbler批量安装操作系统
- 函数之间的相互调用
- “JavaScript Promises和AngularJS $q Service”Part 1 (基础篇)
- test
- 贝叶斯概率
- 1052.Linked List Sorting (25)
- 栈问题2(四则运算)
- 进程创建函数之fork()和vfork()
- shake_wu 的csdn博客开张了!
- script之正则表达式
- 流态区说法-《程序员的职业素养》
- 如何安装WebStorm软件?
- 数组与函数传递
- Task Scheduler 2.0的相关操作