zoukankan      html  css  js  c++  java
  • UVa 11462 Age Sort

    解题报告:给若干个居民的年龄排序,年龄的范围在1到100之间,输入的总人数在0到200W。这题要注意的输入的文件约有25MB,而内存限制为2MB,所以如果人数是像200W这样多的话,甚至都不能把它们都读入内存,所以就不能用快速排序等各种排序,只能通过标记来进行排序,这题很明显的一个特征就是要排序的数字都不大,只有1到100,要排序的数字的个数大于要排序的数字的范围,所以我们可以定义一个数组age[105],然后将他各个都初始化为0,若输入了一个数,则将以这个数为下标的上标相应的加1,表示年龄是这个数字的人有多少个。最后只要从1到100将这些数字根据它们的个数输出来就可以了.

     1 #include<cstdio>
     2 #include<cstring>
     3 int n,age[101];
     4 int main() {
     5     while(scanf("%d",&n)&&n) {
     6         int a;
     7         memset(age,0,sizeof(age));
     8         for(int i=0;i<n;++i) {
     9             scanf("%d",&a);
    10             age[a]++;
    11         }
    12         bool flag = 1;
    13         for(int i=1;i<=100;++i)
    14         for(int j=0;j<age[i];++j) {
    15             if(!flag) printf(" ");
    16             flag=0;
    17             printf("%d",i);
    18         }
    19         
    20         printf("
    ");
    21     }
    22     return 0;
    23 }
    View Code
  • 相关阅读:
    想更改Github仓库中的某个文件结构
    记git一些基本用法
    剑指Offer-Python(16-20)
    剑指Offer-Python(11-15)
    初次使用flask
    Python的Cmd模块的简易运用学习
    SQL-全称量词查询
    线段树模板1
    OJ输入输出超时(C++)
    二叉查找树(BST)定义
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3157433.html
Copyright © 2011-2022 走看看