HDU - 5775 树状数组
题意:
思路:
代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 111111;struct BIT {int n;int C[MAXN];void init(int n) {this->n = n;memset(C, 0, sizeof(C));}int lowbit(int x) {return x & -x;}void add(int x, int y) {while (x <= n) {C[x] += y;x += lowbit(x);}}int sum(int x) {int res = 0;while (x > 0) {res += C[x];x -= lowbit(x);}return res;}} bit;int a[MAXN], l[MAXN], r[MAXN];int main() {int T, cs = 0;scanf("%d", &T);while (T--) {int n;scanf("%d", &n);bit.init(n);for (int i = 1; i <= n; i++)scanf("%d", &a[i]);for (int i = n; i >= 1; i--) {r[a[i]] = i + bit.sum(a[i]);bit.add(a[i], 1);l[a[i]] = min(i, a[i]);}printf("Case #%d:", ++cs);for (int i = 1; i <= n; i++)printf(" %d", abs(l[i] - r[i]));printf("\n");}return 0;
}
HDU - 5775 树状数组相关推荐
- HDU 5775 (树状数组)
题目链接:点击这里 题意:给出一个序列,求每一个数字在冒泡排序中出现的最大最小下标差. 从小到大考虑每一个数组,一个数字右边有多少个比他大的数字就是他右移的数量.用树状数组维护下就好了. #inclu ...
- HDU 4358 树状数组+思路
http://acm.hdu.edu.cn/showproblem.php?pid=4358 如图所示,当k==3时,如果我们扫描到红线所在的位置. 则符合条件的区间就是从红线到两条紫线所包含的区间( ...
- hdu 4991(树状数组优化dp)
Ordered Subsequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- hdu 1166 树状数组解
树状数组解决 (关于树状数组参考大佬的博客https://www.cnblogs.com/hsd-/p/6139376.html) 然后就很好理解这题了,代码附上 /*hdu 1166 单点修改, ...
- hdu 3333 树状数组+离线处理
思路:既然要求的是不同的元素的和,那么我们可以想办法让每个值在区间中只出现一次,于是想到了离线的算法:将查询按照右端点排序,位置在右端点之前的元素都插入到树状数组中,对于已经出现过的值,我们要先删除( ...
- hdu 4417(树状数组+离线算法)
解题思路:这道题要求某区间内比h小的个数,其实这里可以类似于树状数组求逆序数那样.关键是如何转换成树状数组的模型,这才是本题的难点. 我们首先分析,如果知道h在该区间的哪个位置,那么剩下的就很好做了. ...
- hdu 1394(树状数组求逆序数)
解题思路:这道题是求循环数组中逆序数最小值,求逆序数这里肯定是用树状数组.只是这里有一点点变化,由于题目中n位数是0-n-1的一个排列,所以num[i]可表示为比num[i]小的数的个数.把第一位的数 ...
- Weak Pair HDU - 5877 树状数组+离散化+DFS遍历
题意 给我们一颗有根有向树 以及每个点得权值a[1]~a[n] 需要我们求出在这颗树种有多少对满足以下两个条件的pair (1)u是v的祖先节点 (2)a[u]*a[v]<= k N<=1 ...
- hdu 4970 树状数组 “改段求段”
题意:塔防.给1--n,给出m个塔,每个塔有攻击力,给出k个怪兽的位子和血量,问有几只可以到达n点. 今天刚刚复习了树状数组,就碰到这个题,区间更新.区间求和类型.第三类树状数组可以斩. 注意一下大数 ...
最新文章
- 解决Tensorflow 使用时cpu编译不支持警告
- python工程师月薪多少-Python全栈工程师为何这么火薪资这么高看了才知道
- 4 个概念,1 个动作,让应用管理变得更简单
- mysql 磁盘利用率100_磁盘空间使用率100%的故障处理
- 在jQuery和JavaScript中,实现转跳
- CSS3弹性伸缩布局(一)——box布局
- 如何在Android主屏幕上添加热点快捷方式
- micropython 人脸识别检测_Flask实战!从后台管理到人脸识别,六款优质Flask开源项目介绍...
- Linux的yum命令及基本用法
- 在J2ME和WAP中实现电话呼叫功能
- 4月10日服务器例行维护公告,4月12日服务器例行维护公告(已完成)
- Rust : time,关于程序运行的计时
- AxureRP9授权码
- intellij idea快捷键精简版
- 【mmdetection3d】——3D 目标检测 KITTI 数据集
- PHPExcel浏览器输出Excel2007出错
- 心智与认知(1): 反馈循环(Feedback loop)
- UE4渲染设置介绍(Rendering Setting)
- css之calc,初探CSS3中的calc()功能
- 爬虫学习(14):selenium自动化测试(三):鼠标和键盘操作
热门文章
- ControlNet精准控制AI绘画教程
- 前端学习路线+资源整合
- python中取反是什么意思_20191031:Python取反运算详解
- Spark做数据分析:Spark大数据分析的优势
- “5G 将是一个彻底的失败通信技术” | 畅言
- mc一进服务器就未响应,大佬们这得怎么办啊,一进服务器游戏就崩溃,
- 腾讯云GPU服务器部署Ai绘画Stable Diffusion 小白可用
- svg、canvas、css3d实现数据可视化(伪3d)
- php写防汛物资系统,防汛抗旱信息管理系统
- find命令排除某些目录或文件