题目链接:

https://www.luogu.com.cn/problem/P1428?contestId=59884

【题目描述】

人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。

【输入格式】

第一行输入一个整数 nn,表示鱼的数目。

第二行内输入 nn 个整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度。

【输出格式】

行内输出 nn 个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。

【输入输出样例】

【输入】

6
4 3 0 5 1 2

【输出】 

0 0 0 3 1 2

说明/提示

对于 100% 的数据,n ≤ 100。

【做题思路】

题目规模小,用暴力就可以过,这里介绍树状数组做法。

建立的树状数组,是每个值为0(当前比该喜爱度小的数量),以下标为喜爱度的数组。

每次访问当前喜爱度前有多少个比之小的,返回答案值,后更新比当前值大的所存答案。

#include <iostream>
using namespace std;
int n, val, t[105];int lowbit(int x);
int getsum(int x);
void update(int x, int v);int main()
{cin>>n;for(int i=1; i<=n; i++){cin>>val;if(i != 1)cout<<" ";cout<<getsum(val);    //向前查找比之小的喜爱度update(val+1, 1);    //向后更新比之大的喜爱度}return 0;
}int lowbit(int x)
{return x&(-x);
}int getsum(int x)
{int sum = 0;while(x){sum += t[x];x -= lowbit(x);}return sum;
}void update(int x, int v)
{while(x <= 100){t[x] += v;x += lowbit(x);}
}

[打题集]小鱼比可爱(树状数组)相关推荐

  1. 【BZOJ3132】【TYVJ1716】上帝造题的七分钟 二维树状数组

    题目大意 维护一个\(n\times m\)的矩阵,有两种操作: \(1~x_1~y_1~x_2~y_2~v\):把\((a,b),(c,d)\)为顶点的矩形区域内的所有数字加上\(v\). \(2~ ...

  2. 夜深人静写算法(三)- 树状数组

    目录   一.从图形学算法说起       1.Median Filter 概述       2.r pixel-Median Filter 算法 3.一维模型       4.数据结构的设计     ...

  3. HDU1166 敌兵布阵(树状数组模板题)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. 树状数组的理解(前缀和 and 差分)

    二更-- 有神仙反映数星星那个题外链炸了,我决定把图给你们粘一下,汉语翻译的话在一本通提高篇的树状数组那一章里有,同时也修改了一些汉语语法的错误 这段时间学了线段树组,当神仙们都在学kmp和hash的 ...

  5. POJ3468--A Simple Problem with Integers--线段树/树状数组 改段求段

    题目描述 You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type ...

  6. hdu 1892二维树状数组

    这题我知道是用树状数组,可是好久没打树状数组了,就想用普通方法水过去~~结果--结果--水了好多方法都水不过,出题人真狠呐--我的水方法是对于每一次查询,初始化ans=(x2-x1+1)*(y2-y1 ...

  7. HDU 4325 离散化+树状数组 或者 不使用树状数组

    题意:给出一些花的开放时间段,然后询问某个时间点有几朵花正在开放. 由于ti<1e9,我们需要先将时间离散化,然后将时间点抽象为一个数组中的点,显然,我们需要进行区间更新和单点查询,可以考虑线段 ...

  8. 【数据结构】树状数组详解(Leetcode.315)

    前言 最近做题时遇到一个关于树状数组的题力扣https://leetcode-cn.com/problems/count-of-smaller-numbers-after-self/但是CSDN上仅有 ...

  9. 1010 Lehmer Code (35 分)(思路+详解+树状数组的学习+逆序对+map+vector) 超级详细 Come baby!!!

    一:题目 According to Wikipedia: "In mathematics and in particular in combinatorics, the Lehmer cod ...

最新文章

  1. (Java)程序员应打破牢笼,展望更高层次的世界
  2. Java并发工具类(闭锁CountDownLatch)
  3. 脊柱关节炎的目标治疗推荐
  4. 字符串中斜杠换行注意事项之-多余空格
  5. python读取文件夹下特定的文件_python os模块获取指定文件夹下所有文件名
  6. 安装 ibm-java-x86_64-sdk-6.0-9.3.x86_64.rpm 的三步骤
  7. 毕马威首次发布《初探元宇宙》报告:从科幻畅想到产业风口(附报告下载链接)...
  8. python实现打飞机小游戏
  9. win10美化--打造专属我的windows
  10. Visual Studio 2015 安装教程(附安装包)
  11. prosody相关概念了解。xmpp,jabber,bosh等
  12. 使用cwRsync实现windows下文件定时同步
  13. 美国弗吉尼亚大学计算机科学,弗吉尼亚大学计算机科学专业
  14. spss-鸢尾花观测数据
  15. kafka的生产者如何把消息发送到指定分区里
  16. HDU 4069 Squiggly Sudoku(DLX)(The 36th ACM/ICPC Asia Regional Fuzhou Site —— Online Contest)...
  17. react 三种通信方式(父传子、子传父、兄弟传值)
  18. Ubuntu操作-03 设置开机自启
  19. js excel转日期 time.getDate()-1 会少一天
  20. hge养成类游戏《见习小恶魔威力加强版》源代码

热门文章

  1. 《计算机基础》在线作业,重庆西南大学17年秋季1056《计算机基础》在线作业(参考复习资料)...
  2. java 正则匹配 sql星号,正则表达式之 * 星号
  3. 前端战五渣学JavaScript——前端数据存储
  4. 设置LD_LIBRARY_PATH不起作用(失效)
  5. 【转载】IIS配置php环境
  6. 输入一行字符,统计其中有多少个单词
  7. Python小例子——绘制水球图
  8. 147597-66-8,p-SCN-Bn-NOTA,NOTA-P-苯-NCS新型双功能螯合剂
  9. excel的【分类汇总】无法使用
  10. 乡村版《小时代3》 转自豆瓣