zoukankan      html  css  js  c++  java
  • poj 2299 Ultra-QuickSort 逆序对模版题

    用树状数组求逆序数 唯一的坑点就是sum要用long long存 直接贴代码了 以后忘了还能直接看 2333……

    PS:和hdu3743代码是一样的,因为两个都是逆序对模版题……

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 using namespace std;
     5 int s[500005];
     6 int N;
     7 struct num{
     8     int xuhao,num;
     9 }nu[500005];
    10 int qufan(int i){
    11     return i&(-i);
    12 }
    13 int cmp(num nu1,num nu2){
    14     return nu1.num<nu2.num;
    15 }
    16 int summ(int a){
    17     int sum=0;
    18     while(a>0){
    19         sum+=s[a];
    20         a-=qufan(a);
    21     }
    22     return sum;
    23 }
    24 void haha(int n,int x){
    25     while(x<=n){
    26         s[x]++;
    27         x+=qufan(x);
    28     }
    29 }
    30 int main(){
    31     int n;
    32     while(~scanf("%d",&n)&&n){
    33         for(int i=1;i<=n;i++){
    34             scanf("%d",&nu[i].num);
    35             nu[i].xuhao=i;
    36         }
    37         sort(nu+1,nu+n+1,cmp);
    38         long long sum=0;
    39         for(int i=n;i>=1;i--){
    40             sum+=summ(nu[i].xuhao);
    41             haha(n,nu[i].xuhao);
    42         }
    43         printf("%lld
    ",sum);
    44         memset(s,0,sizeof(s));
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    Tensorflow 学习
    几种常见损失函数
    两人比赛先选后选谁获胜系列的动态规划问题
    LeetCode 全解(bug free 训练)
    局部敏感哈希LSH
    Annoy解析
    MCMC例子
    TinyBERT简单note
    ALBERT简单note
    求根号2, 网易的一道面试题
  • 原文地址:https://www.cnblogs.com/general10/p/5294288.html
Copyright © 2011-2022 走看看