题面:输入一列整数,输出它们的总和、最大值、最小值、并从大到小输出。

先上一波伪代码,认真地做一波数组排序题。

#include<stdio.h>
#include<math.h>
] , b[];
int main ()
{
     , min = pow( , ) -  , max = -pow(,);
    scanf("%d",&a);
     ; i <= a ; i ++)
    {
        scanf("%d",&c[i]);
        sum += c[i];
        if(c[i] > max)
            max = c[i] ;
        if(c[i] < min)
            min = c[i] ;
        //先统计不重复的个数,记为An 。
        //桶排序,或者冒泡排序进行排序,注意重复的值,放到这个数组b中。
         ;
    }
    printf("%d\n%d\n",max,min);
     ; k <= /*An*/; k ++ )
        printf("%d\n",b[k]);
     ;
}

伪代码

不知道有没有把这个题做复杂,总之在啥都不会的情况下,第一个想到的是桶排序,然而只会冒泡排序的部分。

//一会专门开一个随笔写写自己对于那些排序的理解与想法。

很皮,在研究一番桶排序之后,发现桶排序,就是将值放到另一个数组对应的值的数组位数上面去,b[c[i]] = 1,如果需要多次输入,改成b[c[i]] ++即可。

于是很兴奋地试了样例,过了,交上去,果断WA了,尬的一批。

 #include<stdio.h>
 #include<math.h>
 ] , b[];
 int main ()
 {
      , min = pow( , ) -  , max = -pow(,);
     scanf("%d",&a);
      ; i <= a ; i ++)
     {
         scanf("%d",&c[i]);
         sum += c[i];
         if(c[i] > max)
             max = c[i] ;
         if(c[i] < min)
             min = c[i] ;
         b[c[i]]  =  ;
     }
     printf("%d\n%d\n%d\n%d\n",sum,max,min,max);
      ; j -- )
          ; k < b[j]; k ++ )
             printf("%d\n",j);
      ;
 }

第一次交

于是观察到了一个奇葩的值

10  9 9 9 9 9 9 9 9 9 9

在我的第一个桶排序中,很迷地输出不了最大值,于是在for循环前加了一个最大值,导致这组值输出的多了一个9。问题不大,在外层循环的地方扩到了最大,很愉快地过了。

 #include<stdio.h>
 #include<math.h>
 ] , b[];
 int main ()
 {
      , min = pow( , ) -  , max = -pow(,);
     scanf("%d",&a);
      ; i <= a ; i ++)
     {
         scanf("%d",&c[i]);
         sum += c[i];
         if(c[i] > max)
             max = c[i] ;
         if(c[i] < min)
             min = c[i] ;
         b[c[i]]  =  ;
     }
     printf("%d\n%d\n%d\n",sum,max,min);
      ; j >=  ; j -- )
          ; k < b[j]; k ++ )
             printf("%d\n",j);
      ;
 }

但是最后还是WA了一个点,因为500太小了,测试点有一个是5058,就没有输出。

最终完成代码

 #include<stdio.h>
 #include<math.h>
 ] , b[];
 int main ()
 {
      , min = pow( , ) -  , max = -pow(,);
     scanf("%d",&a);
      ; i <= a ; i ++)
     {
         scanf("%d",&c[i]);
         sum += c[i];
         if(c[i] > max)
             max = c[i] ;
         if(c[i] < min)
             min = c[i] ;
         b[c[i]]  =  ;
     }
     printf("%d\n%d\n%d\n",sum,max,min);
      ; j >=  ; j -- )
          ; k < b[j]; k ++ )
             printf("%d\n",j);
      ;
 }

AC代码

ps:我觉得我的代码不丑吧,虽然在算法方面很颓,但是还是算得上工整好看的吧。

复习了桶排序,近40分钟才A了这么一道题,尬。

那是我愿意付诸一生的人,现在却没法拥有。

作死上CODEVS,青铜题的更多相关文章

  1. codevs 搜索题汇总(青铜+白银级)

    1792 分解质因数  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze   题目描述 Description 编写一个把整数N分解为质因数乘积的程序. 输入描 ...

  2. 用python做oj上的简单题(持续更新中.......)

    本人刚開始接触python,在oj上解一些简单的题,欢迎交流,不喜勿喷. OJ地址链接:acm.sdut.edu.cn http://acm.sdut.edu.cn/sdutoj/showproble ...

  3. hdoj上的一题和程序设计第二次作业的拓展-人见人爱a+b

    hdoj上一道有意思的题目,题目: 人见人爱a+b 敲的也蛮快的,大概十分钟左右就AC了.代码如下: 人见人爱a+b #include<stdio.h> int main() { int ...

  4. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  5. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 F题 Clever King(最小割)

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  6. 网络流 24 题汇总(LOJ 上只有 22 题???)

    太裸的我就不放代码了...(黑体字序号的题表示值得注意) 1.搭配飞行员 [LOJ#6000] 二分图最大匹配. 2.太空飞行计划 [LOJ#6001] 最小割常规套路.输出方案.(注:这题换行符要用 ...

  7. 上POJ刷题

    Online Judge系统      Online Judge系统(简称OJ)是一个在线的判题系统.用户可以在线提交给定问题的多种程序(如C.C++.Pascal.Java)源代码,系统对源代码进行 ...

  8. codevs 搜索题汇总(钻石+大师级)

    1043 方格取数 2000年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description 设有N*N的方格图 ...

  9. codevs 搜索题汇总(黄金级)

    2801 LOL-盖伦的蹲草计划  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold   题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖 ...

随机推荐

  1. 手机端rem如何适配_rem详解及使用方法

    什么是rem 在我看来,rem就是1rem单位就等于html节点fontsize的像素值.所以改变html节点的fontsize是最为关键的一步.根据手机宽度改变相对大小就可以实现自适应了,就不用什么 ...

  2. Markdown语法讲解及MWeb使用教程

    写了一个月的博客,忽然感觉Markdown编辑器比较好用,于是就下载了一个本地的Markdown编辑软件学习了一下,刚好软件里自带了一篇英文的指示文档,顺便翻译了一下,通过这个过程也大致熟悉了Mark ...

  3. 2017Java技术预备作业1501黄学超

    阅读邹欣老师的博客,谈谈你期望的师生关系是什么样的? 我觉得师生关系应当是亲密无间,课上老师讲解学生配合,课下师生交流启发思考. 你有什么技能(学习,棋类,球类,乐器,艺术,游戏,......)比大多 ...

  4. Javascript:面试经典套路-查重(reduce)

    今天在偶然间查看到了一段代码,代码使用了很短的篇幅完成了字符串统计相同字符次数这个经典面试题,其中用到了reduce这个方法,网上查了查,没有查到什么有价值的东西,导致浪费了我一些时间才看懂,现将我的 ...

  5. Cassandra-java操作——基本操作

    接着上篇博客,我们来谈谈java操作cassandra; 上篇博客的环境:jdk1.7 + python2.7.10 + cassandra2.2.8; 由于2.2.8没有对应的驱动文档,那么我们就用 ...

  6. 常见排序算法-Python实现

    常见排序算法-Python实现 python 排序 算法 1.二分法     python    32行 right = length-  :  ]   ):  test_list = [,,,,,, ...

  7. 【 js 性能优化】throttle 与 debounce 节流

    在看 underscore.js 源码的时候,接触到了这样两个方法,很有意思: 我先把实现的代码撂在下面,看不懂的可以先跳过,但是跳过可不是永远跳过哦- 一个是 throttle: _.throttl ...

  8. 持续集成:TestNG组织如何测试用例 1

    持续集成:TestNG组织如何测试用例   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:90 ...

  9. https证书申请流程和简介

    HTTPS证书是什么 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安 ...

  10. CF #405 (Div. 2) B. Bear ad Friendship Condition (dfs+完全图)

    题意:如果1认识2,2认识3,必须要求有:1认识3.如果满足上述条件,输出YES,否则输出NO. 思路:显然如果是一个完全图就输出YES,否则就输出NO,如果是无向完全图则一定有我们可以用dfs来书边 ...