NYOJ 673 悟空的难题
2014-07-16 00:30
211 查看
/*
题目大意:排序
难点详解:用快排会超时,要用数组下标排序法
关键点:用数组下标排序法
解题人:lingnichong
解题时间:2014/08/06 21:10
解题感受:用快排尽然超时了,在志哥的介绍下,我用了数组下表排序法
*/
一开始用快排超时的代码:
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
自从悟空当上了齐天大圣,花果山上的猴子猴孙们便也可以尝到天上的各种仙果神酒,所以猴子猴孙们的体质也得到了很好的提高,身高年龄也得到了很大的提升。有一天悟空没事,要带领他的猴子猴孙们出去旅游,为了保持花果山的形象,一位年长的猴子建议猴子们都按身高排成一队。
猴子们是如此的着急出发,如何快速的排好队伍让这个神功盖世的齐天大圣头痛不已。现在请你来当齐天大圣悟空的军师来帮他排序吧。
输入数据第一行包括一个整数t(0<t<=50),代表有t组测试数据;
接下来的每组数据第一行有两个整数,n,m(0<n<=1000000),分别代表猴子的数量和最高身高(身高按厘米来记,假设所有猴子身高最多不会超过1米)。第二行为n个猴子的身高,空格隔开。
输出每组输出一行。
从小到大输出所有猴子的身高,用空格隔开。(最后一个身高后面没有空格)。
样例输入
样例输出
数组下标排序法//AC:
题目大意:排序
难点详解:用快排会超时,要用数组下标排序法
关键点:用数组下标排序法
解题人:lingnichong
解题时间:2014/08/06 21:10
解题感受:用快排尽然超时了,在志哥的介绍下,我用了数组下表排序法
*/
一开始用快排超时的代码:
#include<stdio.h> #include<stdlib.h> #define MAXN 1000000+5 int a[MAXN]; int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b; } int main() { int t; scanf("%d",&t); while(t--) { int n,m,i,j; scanf("%d %d",&n,&m); for(i=0;i<n;i++) scanf("%d",&a[i]); qsort(a,n,sizeof(a[0]),cmp); printf("%d",a[0]); for(i=1;i<n;i++) printf(" %d",a[i]); printf("\n"); } return 0; }
悟空的难题
时间限制:1000 ms | 内存限制:65535 KB难度:2
描述
自从悟空当上了齐天大圣,花果山上的猴子猴孙们便也可以尝到天上的各种仙果神酒,所以猴子猴孙们的体质也得到了很好的提高,身高年龄也得到了很大的提升。有一天悟空没事,要带领他的猴子猴孙们出去旅游,为了保持花果山的形象,一位年长的猴子建议猴子们都按身高排成一队。
猴子们是如此的着急出发,如何快速的排好队伍让这个神功盖世的齐天大圣头痛不已。现在请你来当齐天大圣悟空的军师来帮他排序吧。
输入数据第一行包括一个整数t(0<t<=50),代表有t组测试数据;
接下来的每组数据第一行有两个整数,n,m(0<n<=1000000),分别代表猴子的数量和最高身高(身高按厘米来记,假设所有猴子身高最多不会超过1米)。第二行为n个猴子的身高,空格隔开。
输出每组输出一行。
从小到大输出所有猴子的身高,用空格隔开。(最后一个身高后面没有空格)。
样例输入
2 5 100 2 4 5 1 3 10 100 9 8 5 1 10 2 3 4 9 8
样例输出
1 2 3 4 5 1 2 3 4 5 8 8 9 9 10
数组下标排序法//AC:
#include<stdio.h> #include<string.h> int a[1000010],b[105]; int main() { int t; int n,m; int i,j,temp; scanf("%d", &t); while(t--) { memset(b,0,sizeof(b)); scanf("%d%d", &n, &m); for(i = 0; i < n; i++) { scanf("%d", &a[i]); b[a[i]]++; } // for(i=1;i<=n;i++) // printf("%d ",b[i]); // printf("\n"); temp=0; for(i = 0;i < 105; i++) { if(b[i]>1&&temp!=n-1) { for(j = 0; j < b[i]; j++) { temp++; printf("%d ", i); } } else if(b[i] != 0 && temp != n-1) { temp++; printf("%d ", i); } else if(b[i] != 0 && temp == n-1) printf("%d\n", i); } } return 0; }
相关文章推荐
- NYOJ 673 悟空的难题
- nyoj——673 悟空的难题
- NYOJ 673 悟空的难题
- nyoj-673-悟空的难题(数组标记)
- NYOJ 673 悟空的难题
- NYOJ-673悟空的难题~~水题~~
- NYOJ 673 悟空的难题 数组标记排序
- nyoj-673-悟空的难题(数组标记)
- NYOJ 673 悟空的难题
- NYOJ 673 悟空的难题
- nyoj 题目673 悟空的难题(下标排序)
- nyoj 673 悟空的难题
- ACM(673)悟空的难题(2)
- nyist 673 悟空的难题
- 南阳673 悟空的难题
- NYOJ,637,悟空的难题
- NYOJ-小明的难题
- nyoj--744--蚂蚁的难题(一)
- NYOJ 题目239月老的难题(二分图最大匹配,邻接表)
- nyoj--747--蚂蚁的难题(三)(dp背包)