• 洛谷 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 }

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

  • 相关阅读:
    SQL Server 2005 中的分区表和索引
    经典SQL语句大全
    SQLSERVER数据表的记录重排物理优化方案
    Sql Server性能优化——Partition(创建分区)
    关于 shell 脚本编程的10 个最佳实践
    ARM相关
    GNU ARM 汇编指令
    一个初学者该如何学习内核?
    NANDFLASH原理分析
    什么是GPIO?
  • 原文地址:https://www.cnblogs.com/handsome-zyc/p/11862765.html
Copyright © 2020-2023  润新知