[打题集]小鱼比可爱(树状数组)
题目链接:
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);}
}
[打题集]小鱼比可爱(树状数组)相关推荐
- 【BZOJ3132】【TYVJ1716】上帝造题的七分钟 二维树状数组
题目大意 维护一个\(n\times m\)的矩阵,有两种操作: \(1~x_1~y_1~x_2~y_2~v\):把\((a,b),(c,d)\)为顶点的矩形区域内的所有数字加上\(v\). \(2~ ...
- 夜深人静写算法(三)- 树状数组
目录 一.从图形学算法说起 1.Median Filter 概述 2.r pixel-Median Filter 算法 3.一维模型 4.数据结构的设计 ...
- HDU1166 敌兵布阵(树状数组模板题)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 树状数组的理解(前缀和 and 差分)
二更-- 有神仙反映数星星那个题外链炸了,我决定把图给你们粘一下,汉语翻译的话在一本通提高篇的树状数组那一章里有,同时也修改了一些汉语语法的错误 这段时间学了线段树组,当神仙们都在学kmp和hash的 ...
- POJ3468--A Simple Problem with Integers--线段树/树状数组 改段求段
题目描述 You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type ...
- hdu 1892二维树状数组
这题我知道是用树状数组,可是好久没打树状数组了,就想用普通方法水过去~~结果--结果--水了好多方法都水不过,出题人真狠呐--我的水方法是对于每一次查询,初始化ans=(x2-x1+1)*(y2-y1 ...
- HDU 4325 离散化+树状数组 或者 不使用树状数组
题意:给出一些花的开放时间段,然后询问某个时间点有几朵花正在开放. 由于ti<1e9,我们需要先将时间离散化,然后将时间点抽象为一个数组中的点,显然,我们需要进行区间更新和单点查询,可以考虑线段 ...
- 【数据结构】树状数组详解(Leetcode.315)
前言 最近做题时遇到一个关于树状数组的题力扣https://leetcode-cn.com/problems/count-of-smaller-numbers-after-self/但是CSDN上仅有 ...
- 1010 Lehmer Code (35 分)(思路+详解+树状数组的学习+逆序对+map+vector) 超级详细 Come baby!!!
一:题目 According to Wikipedia: "In mathematics and in particular in combinatorics, the Lehmer cod ...
最新文章
- (Java)程序员应打破牢笼,展望更高层次的世界
- Java并发工具类(闭锁CountDownLatch)
- 脊柱关节炎的目标治疗推荐
- 字符串中斜杠换行注意事项之-多余空格
- python读取文件夹下特定的文件_python os模块获取指定文件夹下所有文件名
- 安装 ibm-java-x86_64-sdk-6.0-9.3.x86_64.rpm 的三步骤
- 毕马威首次发布《初探元宇宙》报告:从科幻畅想到产业风口(附报告下载链接)...
- python实现打飞机小游戏
- win10美化--打造专属我的windows
- Visual Studio 2015 安装教程(附安装包)
- prosody相关概念了解。xmpp,jabber,bosh等
- 使用cwRsync实现windows下文件定时同步
- 美国弗吉尼亚大学计算机科学,弗吉尼亚大学计算机科学专业
- spss-鸢尾花观测数据
- kafka的生产者如何把消息发送到指定分区里
- HDU 4069 Squiggly Sudoku(DLX)(The 36th ACM/ICPC Asia Regional Fuzhou Site —— Online Contest)...
- react 三种通信方式(父传子、子传父、兄弟传值)
- Ubuntu操作-03 设置开机自启
- js excel转日期 time.getDate()-1 会少一天
- hge养成类游戏《见习小恶魔威力加强版》源代码
热门文章
- 《计算机基础》在线作业,重庆西南大学17年秋季1056《计算机基础》在线作业(参考复习资料)...
- java 正则匹配 sql星号,正则表达式之 * 星号
- 前端战五渣学JavaScript——前端数据存储
- 设置LD_LIBRARY_PATH不起作用(失效)
- 【转载】IIS配置php环境
- 输入一行字符,统计其中有多少个单词
- Python小例子——绘制水球图
- 147597-66-8,p-SCN-Bn-NOTA,NOTA-P-苯-NCS新型双功能螯合剂
- excel的【分类汇总】无法使用
- 乡村版《小时代3》 转自豆瓣