cogs1533 [HNOI2002]营业额统计


啦啦啦啦

不维护区间的平衡树题都是树状数组+二分练手题!

不会的参考我的普通平衡树的多种神奇解法之BIT+二分答案

和上一篇博文完全一样2333

另外:goto语句只要不乱用还是挺好用的

// It is made by XZZ
#include<cstdio>
#include<algorithm>
using namespace std;
#define rep(a,b,c) for(rg int a=b;a<=c;a++)
#define drep(a,b,c) for(rg int a=b;a>=c;a--)
#define erep(a,b) for(rg int a=fir[b];a;a=nxt[a])
#define il inline
#define rg register
#define vd void
typedef long long ll;
const int maxn=(1<<15)+4;
int n;
//BIT begin
int t[maxn],tot;
#define lb(o) (o&-o)
il vd Appear(int p){++p;while(p<=tot)++t[p],p+=lb(p);}
il vd Disappear(int p){++p;while(p<=tot)--t[p],p+=lb(p);}
il int Query(int p){int ret=0;while(p)ret+=t[p],p-=lb(p);return ret;}
//BIT end.
il int pre(int p){
int mid,l=1,r=p-1,k=Query(p);
while(l<r){
mid=(l+r)>>1;
if(Query(mid+1)==k)r=mid;
else l=mid+1;
}return l;
}
il int nxt(int p){
int mid,l=p+1,r=tot,k=Query(p+1);
while(l<r){
mid=(l+r)>>1;
if(Query(mid+1)^k)r=mid;
else l=mid+1;
}return l;
}
int s[maxn];ll data[maxn];
bool yes[maxn];
int main(){
scanf("%d",&n);
rep(i,1,n){
if(scanf("%d",&s[i])^1)s[i]=0;
data[i]=s[i];
}
sort(data+1,data+n+1);
tot=unique(data+1,data+n+1)-data-1;
rep(i,1,n)s[i]=lower_bound(data+1,data+tot+1,s[i])-data;
ll ans=data[s[1]];
data[0]=-1e14;
++tot;
Appear(s[1]);yes[s[1]]=1;
rep(i,2,n){
static int a,b;
a=b=0;
if(yes[s[i]])goto end;
yes[s[i]]=1;
if(Query(s[i]))a=pre(s[i]);
if(Query(s[i])^(i-1))b=nxt(s[i]);
ans+=min(abs(data[a]-data[s[i]]),abs(data[b]-data[s[i]]));
end:Appear(s[i]);
}
printf("%lld\n",ans);
return 0;
}

最新文章

  1. mysql [ERROR] Fatal error: Can&#39;t open and lock privilege tables: Table &#39;mysql.host&#39; doesn&#39;t exist (转载)
  2. Eclipse,到了说再见的时候了——Android Studio最全解析
  3. 用python生成一个导出数据库的bat脚本文件
  4. XMl各种格式转换功能代码
  5. Codeforces Educational Codeforces Round 3 C. Load Balancing 贪心
  6. MVC小例子
  7. java集合类——Stack类
  8. encodeURL() vs encodeRedirectURL()
  9. PHP框架_Smarty
  10. Java 高效 MVC &amp; REST 开发框架 JessMA v3.2.1 即将发布
  11. HTML5中video的使用一
  12. git 使用系列(二)---- 分支和合并
  13. oozie调用java实例------Java action
  14. DLL文件修复
  15. collections deque队列及其他队列
  16. pxc5.7配置安装
  17. Mycat配置文件详解及全局序列号
  18. net core体系-web应用程序-4net core2.0大白话带你入门-1目录
  19. 如何让jpa 持久化时不校验指定字段
  20. Rendertron:谷歌 Chrome 新的 headless 模式又贡献了一个新的技巧

热门文章

  1. MVC渲染文章内容的html标签转义
  2. java反序列化Commons-Collections1分析
  3. [19/04/17-星期三] Java的动态性_反射(Reflection)机制
  4. 5、Web Service-整合CXF
  5. mongodb3.2副本集配置
  6. 关于CUDA C 项目中“ error C2059: 语法错误:“&lt;” ”问题的解决方法
  7. 分享一下不错的样式,适用于Gridview,兼容性还不错!
  8. HDU 3790(两种权值的迪杰斯特拉算法)
  9. LUA IO库
  10. alter修改表