问题 C: 排队I(点击)

时间限制: 1 Sec  内存限制: 128 MB

                                                                      提交: 391  解决: 49

                                                        [提交] [状态] [讨论版] [命题人:admin]

题目描述

楠楠最近在研究南海区5年级英语成绩的排序有关算法,如果数列中的数是从小到大排列的,则称有序的。研究中对于没有排好序的数列,要统计每个数前面有多少比它大的数字。比如有5个数的数列:   3  1  4  2  5,则第1个数3之前有0个数比它大;第2个数1之前有1个数比它大;第3个数4之前有0个数比它大;第4个数2之前有2个数比它大;第5个数5之前有0个数比它大。由于数列很长,楠楠求你编程来统计。

输入

第一行1个整数N,表示数列有N个整数。

第二行有N个非负整数,每个数表示一个分数,范围是[0…120]。

输出

一行N个非负整数(每个非负整数后面有一个空格),第i个数表示原数列中第i位前有多少比第i位数大。

样例输入

复制样例数据

5
3 1 4 2 5

样例输出

0 1 0 2 0

提示

8个的数据: N的范围是[1…1000],每个数范围是[0…120]

2个的数据:N的范围是[1…1,00,000],每个数范围是[0…120]

之前做过一次和这个几乎一样的题目 但是之前的题目数据没有那么大 所以未出现tle 也就没考虑用神么方法优化一下 比赛完也没想到好的思路 看了博客 学到种方法 可惜我把数组大小开反了 也没提示运行错误 所以也没注意是数组问题 最后从头读了下代码才发现

思路:

记录输入的数m 每次输入一个数就用 for去从m+1 开始遍历到120

如果m+1这个值 超过0个就把他的数目加入count中

代码:

#include<stdio.h>
int main()
{
int n,i,m,j;
int a[125]={0},count[100005]; //数组count用来记录第i个值前面比他大的数目
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&m); //先输入一个值 接着跑for循环
a[m]++;
count[i]=0;
for(j=m+1;j<=120;j++){ //从m+1这个数开始 判断这个数的数目是否多余0个
if(a[j]!=0){ //如果多于 说明这个数之前出现了几次
count[i]+=a[j];
}
}
}
for(i=0;i<n;i++){
printf("%d ",count[i]); //对每个i 输出相应的数目count[i]
}
printf("\n");
return 0;
}

总结:

1.代码最后不加\n(换行) 也会判对

2.在输入后面可以做一些事 就像打表一样 缩短时间

3.根据数据大小 先考虑会不会tle

感谢:点击访问他的博客

排队I(替换两层复杂for循环、避免TLE)的更多相关文章

  1. 两层c:forEach循环嵌套

    jsp中两级菜单如何用c:forEach输出 items 要被循环的信息 否 无 begin 开始的元素(0=第一个元素,1=第二个元素) 否 0 end 最后一个元素(0=第一个元素,1=第二个元素 ...

  2. java中怎么跳出两层for循环

    使用标号(使用标号跳出两层或者多层for循环): outterLoop: for (int i = 0; i < 9; i++){             for (int j = 0; j & ...

  3. [转]oracle分页用两层循环还是三层循环?

    select t2.* from --两层嵌套 (select t.* , rownum as row_numfrom t where rownum <=20) t2 where t2.row_ ...

  4. Linux网络栈下两层实现

    http://www.cnblogs.com/zmkeil/archive/2013/04/18/3029339.html 1.1简介 VLAN是网络栈的一个附加功能,且位于下两层.首先来学习Linu ...

  5. Deep Learning入门视频(上)_一层/两层神经网络code

    关于在51CTO上的深度学习入门课程视频(9)中的code进行解释与总结: (1)单层神经网络: #coding:cp936 #建立单层神经网络,训练四个样本, import numpy as np ...

  6. MYSQL注入天书之服务器(两层)架构

    Background-6 服务器(两层)架构 首先介绍一下29,30,31这三关的基本情况: 服务器端有两个部分:第一部分为tomcat为引擎的jsp型服务器,第二部分为apache为引擎的php服务 ...

  7. 咏南中间件支持DELPHI低版本开发的两层程序平稳升级到三层

    提供DELPHI中间件及中间件集群,有意请联系. N年前,我们用DELPHI低版本开发的两层程序(比如工厂ERP系统),现在仍然在企业广泛地得到使用,但老系统有些跟不上企业的发展需要了.主要表现在:虽 ...

  8. 两层Fragment嵌套,外层Fragment切换时内层Fragment不显示内容

    尊重他人劳动成果,转载请说明出处:http://blog.csdn.net/bingospunky/article/details/46847269 需求 在搭界面有这么样一个需求:须要两层的Frag ...

  9. 两层嵌套的JSON包的解法

    由于后台的变态,有时候会出现两层甚至多层嵌套的JSON包. 一层的很好解,而且我看过一些比较大的网站新闻接口返回的JSON包也仅仅是一层的. 比如下图所示一层的包 代码也很简单直观 dict = [d ...

随机推荐

  1. python学习(12)使用正则表达式

    1.正则表达式知识 符号 解释 示例 说明 . 匹配任意字符 b.t 可以匹配bat / but / b#t / b1t等 \w 匹配字母/数字/下划线 b\wt 可以匹配bat / b1t / b_ ...

  2. Windows10下打开MySQL服务 & 查看MySQL服务是否启动

    首先 确保电脑已安装MySQL客户端 其次 以管理员方式,打开Windows PowerShell 输入: net start mysql 回车 如下图: 可以了.

  3. 【1-n】区间覆盖 TOJ4168+BZOJ1192

    Xiao Ming is very interesting for array. He given a sorted positive integer array and an integer n. ...

  4. Gym101635C Macarons

    题目链接:http://codeforces.com/gym/101635/attachments 题目大意: 给出一个 \(N \times M\) 的网格图,请你用 \(1 \times 1\) ...

  5. 【面试考】【入门】决策树算法ID3,C4.5和CART

    关于决策树的purity的计算方法可以参考: 决策树purity/基尼系数/信息增益 Decision Trees 如果有不懂得可以私信我,我给你讲. ID3 用下面的例子来理解这个算法: 下图为我们 ...

  6. 【github龟速克星】如何下载快如闪电

    详见:https://www.kesci.com/home/project/5e96fe1ae7ec38002d03cd56 借助第三方网站:https://g.widora.cn/

  7. ajax 请求PHP返回json格式的处理

    php返回代码格式 public function json(){ if (request()->isAjax()){ $data = [ 'code'=>'1', 'msg'=>' ...

  8. Altera的Cyclone系列器件命名规则

    Altera的Cyclone系列器件命名规则如下 器件系列 + 器件类型(是否含有高速串行收发器) +  LE逻辑单元数量 + 封装类型 + 高速串行收发器的数量(没有则不写) + 引脚数目 + 器件 ...

  9. [Objective-C] 003_内存管理

    Objective-C内存管理,基本原理. 1.为什么要进行内存管理? 由于移动设备的内存极其有限,所以分配每个APP使用的内存也是有限制的,app运行时内存占用较多的话,系统就会发出内存警告,严重时 ...

  10. GNS3内网通过cloud与实际网络实现互连互通的实验(使用环回网口)

    一.背景: 在GNS3内构建一个测试网络,该测试网络的设备能够通过cloud访问外部网络设备和Internet网,外部网络也能直接访问GNS3内网的设备. 考虑通过cloud上的环回口连接GNS3内网 ...