• [noip2013][codevs3286]火柴排队


    今天不考试,不考试,啦啦啦~~

    好的严肃,虽然不考试依旧要刷题,搞了一套noip2013玩玩

    这道题是day1的第二题,考了树状数组,排序和逆序对,无压力(我不会告诉你第一次快排出错的= =)

    代码

    var
            a,b,d,h,e,f:array[0..1001000] of int64;
            tot,k,n:int64;
            i,j:longint;
    
    procedure qt1(l,r:longint);
    var i,j,m,p:longint;
    begin
    i:=l; j:=r;
    m:=a[(l+r) div 2];
    repeat
     while a[i]<m do inc(i);
     while a[j]>m do dec(j);
     if i<=j then
      begin
        p:=a[i]; a[i]:=a[j]; a[j]:=p;
        p:=d[i]; d[i]:=d[j]; d[j]:=p;
        inc(i); dec(j);
      end;
     until i>j;
    if i<r then qt1(i,r);
    if l<j then qt1(l,j);
    end;
    
    procedure qt2(l,r:longint);
    var i,j,m,p:longint;
    begin
    i:=l; j:=r;
    m:=b[(l+r) div 2];
    repeat
     while b[i]<m do inc(i);
     while b[j]>m do dec(j);
     if i<=j then
      begin
        p:=b[i]; b[i]:=b[j]; b[j]:=p;
        p:=f[i]; f[i]:=f[j]; f[j]:=p;
        inc(i); dec(j);
      end;
     until i>j;
    if i<r then qt2(i,r);
    if l<j then qt2(l,j);
    end;
    
    function lowbit(x:longint):longint;
    begin exit(x and -x); end;
    
    procedure  add(x:longint);
    begin
            while x<=k do
            begin
                    inc(h[x]);
                    inc(x,lowbit(x));
            end;
    end;
    
    function sum(x:longint):longint;
    begin
            sum:=0;
            while x>0 do
            begin
                    inc(sum,h[x]);
                    dec(x,lowbit(x));
            end;
    end;
    
    begin
            readln(n);
            for i:=1 to n  do begin read(a[i]);  d[i]:=i; end;
            for i:=1 to n do begin read(b[i]); f[i]:=i;end;
            qt1(1,n);
            qt2(1,n);
            for i:=1 to n do
            e[d[i]]:=f[i];
            k:=0;
            for i:=1 to n do
            if k<e[i] then k:=e[i];
            for i:=1 to n do
            begin
            add(e[i]);
            tot:=tot-sum(e[i])+i;
            end;
            writeln(tot mod 99999997);
    end.

       喜欢就收藏一下,vic私人qq:1064864324,加我一起讨论问题,一起进步^-^

  • 相关阅读:
    读书笔记之 javascript 设计模式 工厂模式
    5分钟读书笔记之 设计模式 桥接模式
    读书笔记之 javascript 设计模式 组合模式
    响应式布局
    接收浏览器传值的方式
    AutoPoco的使用
    四种传值方式
    IIS本地服务器,设置IP地址问题
    MVC的小知识点
    MVC 生成Html字符串MvcHtmlString CacheHelper用法
  • 原文地址:https://www.cnblogs.com/victorslave/p/4819736.html
Copyright © 2020-2023  润新知