排队I(替换两层复杂for循环、避免TLE)
问题 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)的更多相关文章
- 两层c:forEach循环嵌套
jsp中两级菜单如何用c:forEach输出 items 要被循环的信息 否 无 begin 开始的元素(0=第一个元素,1=第二个元素) 否 0 end 最后一个元素(0=第一个元素,1=第二个元素 ...
- java中怎么跳出两层for循环
使用标号(使用标号跳出两层或者多层for循环): outterLoop: for (int i = 0; i < 9; i++){ for (int j = 0; j & ...
- [转]oracle分页用两层循环还是三层循环?
select t2.* from --两层嵌套 (select t.* , rownum as row_numfrom t where rownum <=20) t2 where t2.row_ ...
- Linux网络栈下两层实现
http://www.cnblogs.com/zmkeil/archive/2013/04/18/3029339.html 1.1简介 VLAN是网络栈的一个附加功能,且位于下两层.首先来学习Linu ...
- Deep Learning入门视频(上)_一层/两层神经网络code
关于在51CTO上的深度学习入门课程视频(9)中的code进行解释与总结: (1)单层神经网络: #coding:cp936 #建立单层神经网络,训练四个样本, import numpy as np ...
- MYSQL注入天书之服务器(两层)架构
Background-6 服务器(两层)架构 首先介绍一下29,30,31这三关的基本情况: 服务器端有两个部分:第一部分为tomcat为引擎的jsp型服务器,第二部分为apache为引擎的php服务 ...
- 咏南中间件支持DELPHI低版本开发的两层程序平稳升级到三层
提供DELPHI中间件及中间件集群,有意请联系. N年前,我们用DELPHI低版本开发的两层程序(比如工厂ERP系统),现在仍然在企业广泛地得到使用,但老系统有些跟不上企业的发展需要了.主要表现在:虽 ...
- 两层Fragment嵌套,外层Fragment切换时内层Fragment不显示内容
尊重他人劳动成果,转载请说明出处:http://blog.csdn.net/bingospunky/article/details/46847269 需求 在搭界面有这么样一个需求:须要两层的Frag ...
- 两层嵌套的JSON包的解法
由于后台的变态,有时候会出现两层甚至多层嵌套的JSON包. 一层的很好解,而且我看过一些比较大的网站新闻接口返回的JSON包也仅仅是一层的. 比如下图所示一层的包 代码也很简单直观 dict = [d ...
随机推荐
- Robot Framework(3)- 基本概念
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 在 RF ...
- docker的镜像加速
docker加速配置 1,阿里云镜像加速 1.登录:https://dev.aliyun.com/search.html 2.登录阿里云 搜索 容器镜像服务 找到后如下图 ‘ 您可以通过修改da ...
- IO字节流与字符流的操作
字节流: FileInputStream读取,FileOutputStream输出 字节流使用数组缓冲区复制文件,最后得出所使用的时间 public class work2 { publ ...
- Tortoise svn 基础知识
1 不跟踪文件.文件夹 1.1 文件.文件夹已经被svn跟踪 将本地文件.文件夹删除(windows删除文件的删除,快捷键是shift+delete),然后执行svn update 将服务器同步到 ...
- 跟着阿里学JavaDay01——Java编程环境搭建
一.下载并完成JDK的安装 我们要学习Java就需要下载JDK.因为JDK是Java的开发工具. JDK的获取可以通过官方网站下载:JDK下载地址(这里我们下载Java SE10的版本) JDK下载完 ...
- PowerPC-MPC56xx Flash模式启动过程
https://mp.weixin.qq.com/s/SpBOfzJJ1OizYP-rsLJVqQ Flash启动模式为最常用模式. 一般情况下,芯片上电之后,从flash起始位置读取第一条指令的 ...
- Rocket - diplomacy - MixedNode
https://mp.weixin.qq.com/s/zgeAI2n-2cHJi7-Ra5rYZA 介绍MixedNode的实现. 1. 类定义 2. inner/ou ...
- Java试题错题集01
1.javac与java命令 两个命令 javac 和 java. javac 后面跟着的是java文件的文件名,例如 HelloWorld.java. 该命令用于将 java 源文件编译为 clas ...
- Java实现 LeetCode 728 自除数(暴力)
728. 自除数 自除数 是指可以被它包含的每一位数除尽的数. 例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0. 还有,自除数不允许包含 ...
- Java实现 LeetCode 329 矩阵中的最长递增路径
329. 矩阵中的最长递增路径 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例 1: ...