博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2182 树状数组
阅读量:5253 次
发布时间:2019-06-14

本文共 980 字,大约阅读时间需要 3 分钟。

   思路很重要,能想到从后面开始算,最后一个的值加上一就是它的具体位置了。依次类推,就能得到前面的位置。

我刚开始在想,一般方法也能做出来呀,为什么要用树状数组呢。。? 效率!!树状数组可以提高效率。同样时用数组,它就要比一般的数组要快。关键还是要想到,还有就是理解树状数组。

  感谢:http://www.cnblogs.com/rainydays/archive/2011/06/04/2072849.html

前辈们铺好的路,让我们后人能走得更快。

每AC一题,那种感觉是豁然开朗的,怎一个爽字了得! 没做出一题,我的排名就上升了快1000名,呼呼  ~加油!

没有什么可以阻挡你的!

#include 
#include
#include
using namespace std; #define MAX 8008 int f[MAX]; int ar[MAX],flag[MAX]; int n; inline int lowbit(int i){
return i&(-i); } void add(int i){
for(;i<=MAX ;ar[i]+=1,i+=lowbit(i)); } int sum(int i){
int s=0; for(;i>0 ;s+=ar[i],i-=lowbit(i)); return s; } int calspace(int index){
return index-sum(index); } int binary_search(int i){
int l=1; int r=n; int mid; while(l
=0 ;i--){
int a=binary_search(f[i]+1); flag[i]=a; add(a); //把已经找到位置的添加减去。好让在它后面的找位置的时候要多加个1 } for(i=0 ;i

转载于:https://www.cnblogs.com/Jason-Damon/archive/2012/03/07/2384468.html

你可能感兴趣的文章
Factory Design Pattern
查看>>
如何在vue单页应用中使用百度地图
查看>>
P1192-台阶问题
查看>>
一、使用pip安装Python包
查看>>
3.PHP 教程_PHP 语法
查看>>
Duilib扩展《01》— 双击、右键消息扩展
查看>>
利用Fiddler拦截接口请求并篡改数据
查看>>
python习题:unittest参数化-数据从文件或excel中读取
查看>>
在工程中要加入新的错误弹出方法
查看>>
PS 滤镜— — sparkle 效果
查看>>
网站产品设计
查看>>
代理ARP
查看>>
go 学习笔记(4) ---项目结构
查看>>
java中静态代码块的用法 static用法详解
查看>>
Java线程面试题
查看>>
Paper Reading: Relation Networks for Object Detection
查看>>
day22 01 初识面向对象----简单的人狗大战小游戏
查看>>
mybatis源代码分析:深入了解mybatis延迟加载机制
查看>>
Flask三剑客
查看>>
Hibernate-缓存
查看>>