• 洛谷 P1908 逆序对 题解


    每日一题 day43 打卡

    Analysis

    因为数据规模,所以我们需要对其进行离散化,新创一个数组a里面来放在我们的初始序列中在这个位置上的数是第几大的这里还要用一个小技巧排序,关于离散化的技巧我们具体在代码里面看

    离散化之后我们只对a数组进行操作就好了,每次遇到一个数就把他插到树状数组里面去

    双倍经验 洛谷 P1774 最接近神的人_NOI导刊2010提高(02)

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #define int long long
     6 #define rep(i,s,e) for(register int i=s;i<=e;++i)
     7 #define dwn(i,s,e) for(fegister int i=s;i>+e;--i)
     8 #define maxn 5000000+10
     9 using namespace std;
    10 inline int read()
    11 {
    12     int x=0;
    13     bool f=1;
    14     char c=getchar();
    15     for(; !isdigit(c); c=getchar()) if(c=='-') f=0;
    16     for(; isdigit(c); c=getchar()) x=(x<<3)+(x<<1)+c-'0';
    17     if(f) return x;
    18     return 0-x;
    19 }
    20 inline void write(int x)
    21 {
    22     if(x<0){putchar('-');x=-x;}
    23     if(x>9)write(x/10);
    24     putchar(x%10+'0');
    25 }
    26 int n,ans;
    27 int a[maxn],re[maxn];
    28 int tree[maxn];
    29 inline int lowbit(int x)
    30 {
    31     return x&-x;
    32 } 
    33 inline void build(int x,int k)
    34 {
    35     for(int i=x;i<=n;i+=lowbit(i)) tree[i]+=k;
    36 }
    37 inline int ask(int x)
    38 {
    39     int res=0;
    40     for(int i=x;i>=1;i-=lowbit(i)) res+=tree[i];
    41     return res;
    42 }
    43 signed main()
    44 {
    45     n=read();
    46     rep(i,1,n) a[i]=read(),re[i]=a[i];
    47     sort(a+1,a+n+1);
    48     int m=unique(a+1,a+n+1)-a-1;
    49     rep(i,1,n)
    50     {
    51         int now=lower_bound(a+1,a+m+1,re[i])-a;
    52         ans+=ask(m)-ask(now);
    53         build(now,1);
    54     }
    55     write(ans);
    56     return 0;
    57 }

    请各位大佬斧正(反正我不认识斧正是什么意思)

  • 相关阅读:
    验证或是提示字段请求值
    正则表达式模式
    Linux下squid代理缓存服务环境部署
    memcached缓存知识简单梳理
    MySQL 读写分离方案-Amoeba环境部署记录
    linux系统终端命令提示符设置(PS1)记录
    Gitlab快速部署及日常维护(社区版RPM包方式安装)
    Linux下检测IP地址冲突及解决方法
    Linux如何挂载Windows下的共享文件
    定时备份Windows文件到Linux服务器上(Rsync)
  • 原文地址:https://www.cnblogs.com/handsome-zyc/p/11862765.html
Copyright © 2020-2023  润新知