点我看题

这题十分奇淫技巧...QAQ因为知道是树状数组的题QAQ刚开始以为维护两个数组的树状数组然后模拟从大到小,然后发现不会打QAQ

于是悄悄咪咪翻开题解了。

实际上两个数组可以看做一个数组

如  1 4 5

2 7 3

实际上就是 5 4 1 | 2 7 3

“|”这个地方就是假设成一个指标,然后每次把这个指标移到某一个位置,这个位置左右两个边的数就可以删除。

所以就模拟从大到小删数。

第一次 5 4 1 2 | 7 3

指标移动1次就可以删掉“7”

第二次   5 | 4 1 2 3

指标移动3次就可以删掉“5”

第三次   |4 1 2 3

指标不需要移动就可以删除“4”

......

然后就把这些移动的次数加起来就是答案~\(≧▽≦)/~啦啦啦

把删掉的数的位置 置0 有数的位置 置1 然后树状数组维护一下就好了~

  1. var a,c,tree:array[..]of int64;
  2. i,n,m,p:longint;
  3. x,ans:int64;
  4.  
  5. procedure qs(l,r:longint);
  6. var i,j:longint;
  7. m,t:int64;
  8. begin
  9. i:=l;
  10. j:=r;
  11. m:=a[(l+r)>>];
  12. repeat
  13. while a[i]>m do inc(i);
  14. while a[j]<m do dec(j);
  15. if i<=j then
  16. begin
  17. t:=a[i];a[i]:=a[j];a[j]:=t;
  18. t:=c[i];c[i]:=c[j];c[j]:=t;
  19. inc(i);
  20. dec(j);
  21. end;
  22. until i>j;
  23. if l<j then qs(l,j);
  24. if i<r then qs(i,r);
  25. end;
  26. function low(x:longint):longint;
  27. begin
  28. exit(x and -x);
  29. end;
  30. procedure adde(x,d:longint);
  31. begin
  32. while x<=p do
  33. begin
  34. inc(tree[x],d);
  35. inc(x,low(x));
  36. end;
  37. end;
  38. function sum(x:longint):int64;
  39. var s:int64;
  40. begin
  41. s:=;
  42. while x> do
  43. begin
  44. inc(s,tree[x]);
  45. dec(x,low(x));
  46. end;
  47. exit(s);
  48. end;
  49. begin
  50. read(n,m);
  51. p:=n+m;
  52. for i:=n downto do
  53. begin
  54. read(a[i]);
  55. c[i]:=i;
  56. adde(i,);
  57. end;
  58. for i:=n+ to p do
  59. begin
  60. read(a[i]);
  61. c[i]:=i;
  62. adde(i,);
  63. end;
  64. qs(,p);
  65. if c[]>n then x:=n+ else x:=n;
  66. ans:=;
  67. for i:= to p do
  68. begin
  69. adde(c[i],-);
  70. if c[i]>x then ans:=ans+sum(c[i])-sum(x-) else
  71. ans:=ans+sum(x)-sum(c[i]-);
  72. x:=c[i];
  73. end;
  74. writeln(ans);
  75. end.

BZOJ3192

BZOJ 3192: [JLOI2013]删除物品 奇淫技巧&树状数组的更多相关文章

  1. bzoj 3192: [JLOI2013]删除物品

    Description   箱子再分配问题需要解决如下问题:  (1)一共有N个物品,堆成M堆.  (2)所有物品都是一样的,但是它们有不同的优先级.  (3)你只能够移动某堆中位于顶端的物品.  ( ...

  2. BZOJ 3192: [JLOI2013]删除物品(树状数组)

    题面: https://www.lydsy.com/JudgeOnline/problem.php?id=3192 题解: 首先每次一定是来回移动直到最大的到顶上. 所以我们可以将第两个堆的堆顶接起来 ...

  3. 3192: [JLOI2013]删除物品

    3192: [JLOI2013]删除物品 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1366 Solved: 794 [Submit][Statu ...

  4. [BZOJ 3295] [luogu 3157] [CQOI2011]动态逆序对(树状数组套权值线段树)

    [BZOJ 3295] [luogu 3157] [CQOI2011] 动态逆序对 (树状数组套权值线段树) 题面 给出一个长度为n的排列,每次操作删除一个数,求每次操作前排列逆序对的个数 分析 每次 ...

  5. 【题解】BZOJ4548 小奇的糖果(树状数组)

    [题解]BZOJ4548 小奇的糖果(树状数组) 说在前面:我有个同学叫小奇,他有一个朋友叫达达,达达特爱地理和旅游,初中经常AK地理,好怀恋和他已经达达一起到当时初中附近许多楼盘的顶楼逛的时光... ...

  6. bzoj 2434 阿狸的打字机 - Aho-Corasick自动机 - 树状数组

    题目传送门 传送站I 传送站II 题目大意 阿狸有一个打字机,它有3种键: 向缓冲区追加小写字母 P:打印当前缓冲区(缓冲区不变) B:删除缓冲区中最后一个字符 然后多次询问第$x$个被打印出来的串在 ...

  7. BZOJ 2738 子矩阵第k大 | 二维树状数组 整体二分 分治

    BZOJ 2738 "矩阵乘法"(子矩阵第k大) 题意 给出一个矩阵,多次询问子矩阵中第k大的数是多少. 题解 我做这道题之前先照着这道题出了一道题,是这道题的一维版本,在这里:h ...

  8. BZOJ.2738.矩阵乘法(整体二分 二维树状数组)

    题目链接 BZOJ 洛谷 整体二分.把求序列第K小的树状数组改成二维树状数组就行了. 初始答案区间有点大,离散化一下. 因为这题是一开始给点,之后询问,so可以先处理该区间值在l~mid的修改,再处理 ...

  9. BZOJ.3110.[ZJOI2013]K大数查询(整体二分 树状数组/线段树)

    题目链接 BZOJ 洛谷 整体二分求的是第K小(利用树状数组).求第K大可以转为求第\(n-K+1\)小,但是这样好像得求一个\(n\). 注意到所有数的绝对值\(\leq N\),将所有数的大小关系 ...

随机推荐

  1. 关于ios7 UINavigationController.interactivePopGestureRecognizer手势集成

    因为公司业务需求,结合网上的资料整理了一下. 如果自定义过navbar的leftbarbutton 或者backbarbutton 原生interactivePopGestureRecognizer默 ...

  2. remote tomcat monitor---jmc--jvisualvm

    http://mspring.org/article/1229----------jmc http://doorgods.blog.163.com/blog/static/78547857201481 ...

  3. ora-04021 无法锁表的解决办法

    案例场景: 备库上有一张分区表,在做数据导入出了点问题,需要truncate掉重新导入,在执行truncate table时发生了04021错误. 错误分析: ora-04021的解释是等待锁定对象时 ...

  4. Yii框架2.0的Gii

    Yii框架的Gii在我看来算是个快速创建器,当然对于学习来说意义不大,但对于已经懂得他的原理并用他开发的话,就是个快速开发的好工具. 他能快速的创建控制器,模块,crup,插件,Module. 打开g ...

  5. php的soap无故出错的真凶:wsdl缓存

    soap不更新的真凶: 当我修改了服务端的调用方法后,更新了wsdl,客户端的参数老是丢失(不是全丢失,而是部分),让人很郁闷. 第二天我索性增加了一个服务端的新方法,更新了wsdl,但是客户端请求却 ...

  6. FTP服务器文件上传的代码实现

    方式一: @Test public void testFtpClient() throws Exception { // 1.创建一个FtpClient对象 FTPClient ftpClient = ...

  7. 理解ASM的Extent

    理解ASM的Extent 分类: Oracle 2017-04-14 10:19:44   ASM中分配空间的单位是AU,Extent包含1个或多个AU.在11g之前,1个Extent对应1个AU.而 ...

  8. delphi pchar 指针错误

    2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 var P: Pchar; //P 是指针 CSize: Cardinal; ...

  9. Linux系统——硬链接与软链接

    文件属性软硬连接: 链接有两种,一种为硬链接(Hard Link),另一种为软链接或符号链接(Symbolic Link或Soft Link). 建立硬链接时,链接文件和被链接文件必须位于同一个文件系 ...

  10. PKU 3318 Matrix Multiplication(随机化算法||状态压缩)

    题目大意:原题链接 给定三个n*n的矩阵A,B,C,验证A*B=C是否成立. 所有解法中因为只测试一组数据,因此没有使用memset清零 Hint中给的傻乎乎的TLE版本: #include<c ...