zoukankan      html  css  js  c++  java
  • POJ 3067 Japan(树状数组求逆序对)

    POJ - 3067 

    题意:西边给你一排点,东边给你一排点,再给你k条连接东西的线,现问有多少个交点?

    题解:pair存左右两边的点,对pair进行sort,此时得到的pair是按照first排好序的(如果first相同则按照second排序),此时可以发现只需要去找在逆序对即可。注意!!!!!!pair开N*N大小,导致我WA了好久。。。。。。

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<cstdio>
    #define Pii pair<int,int>
    using namespace std;
    const int N=1e3+5;
    using namespace std;
    int c[N];
    Pii p[N*N];
    int n,m,k;
    void add(int x){
        while(x<=m){
            c[x]++;
            x+=x&-x;
        }
    }
    ll getsum(int x){
        ll ans=0;
        while(x>0){
            ans+=c[x];
            x-=x&-x;
        }
        return ans;
    }
    int main(){
        fio;
        int t;
        scanf("%d",&t);
        for(int _=1;_<=t;_++){
            memset(c,0,sizeof(c));
            //printf("Test case %d: ",_);
            scanf("%d %d %d",&n,&m,&k);
            for(int i=0;i<k;i++)scanf("%d %d",&p[i].fi,&p[i].se);
            sort(p,p+k);
            ll ans=0;
            for(int i=0;i<k;i++){
                //ans+=getsum(m)-getsum(p[i].se);
                add(p[i].se);
                ans+=i+1-getsum(p[i].se);
            }
            printf("Test case %d: %lld
    ",_,ans);
        }
        return 0;
    }
  • 相关阅读:
    堆表、AO表 行存列存
    PostgreSQL/PPAS CPU使用率高的排查及解决办法【转】
    GP 锁表查询
    gp 日常使用脚本
    常用gp_toolkit监控语句
    DG 参数详解
    Flask 中路由系统
    实例化Flask的参数 及 对app的配置
    Flask 中内置的 Session
    Flask中request参数
  • 原文地址:https://www.cnblogs.com/Mrleon/p/8405515.html
Copyright © 2011-2022 走看看