每次操作一定是直接换到当前最大的,所以相当于来回移动求移动次数

把两个栈拼在一起就是一个队列,然后就直接查询个数+删点统计答案,用树状数组

码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
int n,v[100005],n1,n2,a[100005],lin[100005],i,wz[100005],zz,l,r;
long long daan;
map<int ,int >ma;
int lowbit(int o)
{return o&(-o);
}
void jia(int wz)
{for(;wz<=n;wz+=lowbit(wz))v[wz]++;
}void jian(int wz)
{for(;wz<=n;wz+=lowbit(wz))v[wz]--;
}
int cha(int wz)
{int ans=0;for(wz;wz>0;wz-=lowbit(wz))ans+=v[wz];return ans;
}
int main()
{
scanf("%d%d",&n1,&n2);n=n1+n2+1;
for(i=n1;i>=1;i--)
{scanf("%d",&a[i]);ma[a[i]]=i;lin[i]=a[i];jia(i);
}
ma[0]=n1+1;
for(i=n1+2;i<=n1+n2+1;i++)
{jia(i);scanf("%d",&a[i]);ma[a[i]]=i;lin[i]=a[i];
}
zz=n1+1;sort(lin+1,lin+1+n);for(i=n;i>=2;i--){int mb=ma[lin[i]];l=mb;r=zz;if(l>r)swap(l,r);int jl=cha(r-1)-cha(l);daan+=jl;jian(mb);zz=mb;  }printf("%lld",daan);
}

bzoj3192 [JLOI2013]删除物品 树状数组相关推荐

  1. bzoj3192: [JLOI2013]删除物品(树状数组)

    既然要从一个堆的堆顶按顺序拿出来放到第二个堆的堆顶,那么我们就可以把两个堆顶怼在一起,这样从一个堆拿到另一个堆只需要移动指针就好了. 换句话说,把1~n倒着,n+1到n+m正着,用一个指针把两个序列分 ...

  2. bzoj3192: [JLOI2013]删除物品

    又是一道玄学乱搞 本来我感觉是写两颗splay然后翻转什么的,后来发现可以乱搞 就是把第一个栈反过来,两个栈拼起来, 然后记录一个分割点,从大到小模拟,移动分割点,中间的经过的没被删除的元素就用树状数 ...

  3. HDU - 5877 Weak Pair 2016 ACM/ICPC 大连网络赛 J题 dfs+树状数组+离散化

    题目链接 You are given a rootedrooted tree of NN nodes, labeled from 1 to NN. To the iith node a non-neg ...

  4. 【2018.12.15】【考试总结】【模拟+逆序对+树状数组+贪心+multiset】爆零之旅

    这是我悲惨的接近爆零的一次考试,但是本蒟蒻不能放弃,还是要总结的QAQ 答题卡 [题目背景] 八月是个悲惨的月份.先不谈炎热的天气,对于新生来说,八月意味着军训: 而对于高二高三的同学来说,八月意味着 ...

  5. BZOJ1901Zju2112 Dynamic Rankings——树状数组套主席树

    题目描述 给定一个含有n个数的序列a[1],a[2],a[3]--a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1 ],a[i+2]--a[j]中第k小的数是多少(1≤k ...

  6. szu 寒训第二天 树状数组 二维树状数组详解,以及树状数组扩展应用【求逆序对,以及动态第k小数】

    树状数组(Binary Index Tree) 树状数组可以解决可以转化为前缀和问题的问题 这是一类用以解决动态前缀和的问题 (有点像线段树简版) 1.对于 a1 + a2 + a3 + - + an ...

  7. Luogu P4178 Tree (点分治 + 树状数组)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P4178 Prob ...

  8. 最长上升子序列(LIS)/最长不上升子序列问题算法详解+例题(树状数组/二分优化,看不懂你来打我)

    目录 最长上升子序列 一.朴素做法O(2n)O(2^n)O(2n) 二.优化做法O(nlogn)O(nlogn)O(nlogn) 三.例题引入:P1020 导弹拦截(求最长上升子序列和最长不上升子序列 ...

  9. 【BZOJ】3173: [Tjoi2013]最长上升子序列(树状数组)

    [题意]给定ai,将1~n从小到大插入到第ai个数字之后,求每次插入后的LIS长度. [算法]树状数组||平衡树 [题解] 这是树状数组的一个用法:O(n log n)寻找前缀和为k的最小位置.(当数 ...

最新文章

  1. 标注工具_语料标注工具(3)
  2. Thrall’s Dream HRBUST - 2048【BFS or 强连通分量】
  3. C# 使用Log4Net记录程序日志
  4. 算法设计与分析重点总结
  5. 如何使用摸瓜快速查手机apk加壳
  6. html+上下标+遇乘号无效,html中的特殊符号
  7. 【Udacity项目】TMDb电影数据集探索分析
  8. oracle mysql 同义词_Oracle中的同义词SYNONYM
  9. stm32h7能跑linux,STM32H7榨干了Cortex-M7的最后一滴血
  10. SpringBoot中通过Redis的setnx和自定义注解@Idempotent实现API幂等处理
  11. Uos统信系统 SSH
  12. Android开发随手记录
  13. nodejs实现VSCode中的open with five server功能
  14. 第五章 USB2.0布线及注意事项
  15. CE_tutorial_game
  16. 推荐中的ctr校准方式
  17. 2021.3.17丨致病菌毒力因子(VFDB)数据库注释
  18. 模仿Airbnb的悬浮搜索框动画
  19. 如果我们失联了,怎么办?
  20. Oracle 11g数据库安装之后无OracleOraDb11g_home1TNSListener服务

热门文章

  1. Android 使用fastboot烧录镜像
  2. 数据库创建联合主键(MySql)
  3. php中数据库怎样增加一列,php – 向wordpress数据库添加新列
  4. nparray和tensor的相互转化
  5. maven配置报错以及The JAVA_HOME environment variable is not defined correctly的解决方法
  6. 优达学城深度学习(之四)——jupyter notebook
  7. Apache Spark Jobs 性能调优(二)
  8. axure 图片切换图片的交互_Axure教程:首页图片轮播
  9. 【爬虫】爬取冰冰第一条视频,保存至csv文件(多页爬取)
  10. oracle批量插入并且返回自增主键_mybatis + (oracle)实现主键自增 + 插入数据并返回主键...