• 火柴排队sol


    火柴排队
    贪心地考虑将两个序列排序后对应应该最优
    将一个序列中在另一个序列中对应位置维护
    最后求逆序对个数

    #include<bits/stdc++.h>
    #define fi first
    #define se second
    #define pb push_back
    #define mp make_pair
    #define SZ(x) ((int)x.size())
    #define ALL(x) x.begin(),x.end()
    #define U(i,u) for(register int i=head[u];i;i=nxt[i])
    #define rep(i,a,b) for(register int i=(a);i<=(b);++i)
    #define per(i,a,b) for(register int i=(a);i>=(b);--i)
    using namespace std;
    typedef long double ld;
    typedef long long ll;
    typedef unsigned int ui;
    typedef pair<int,int> PII;
    typedef vector<int> VI;
    template<class T> inline void read(T &x){
    	x=0;char c=getchar();int f=1;
    	while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
    	while(isdigit(c)){x=x*10+c-'0';c=getchar();}x*=f;
    }
    template<class T> inline void cmin(T &x, T y){x=x<y?x:y;}
    template<class T> inline void cmax(T &x, T y){x=x>y?x:y;}
    const int N=100001;
    const int P=99999997;
    int n,to[N],ans;
    struct node{
    	int x,id;
    }a[N],b[N];
    bool cmp(node aa,node bb){
    	return aa.x<bb.x;
    }
    int c[N];
    int lowbit(int x){return x&(-x);}
    void add(int x,int dt){
    	while(x<=n){
    		c[x]=(c[x]+dt)%P;
    		x+=lowbit(x);
    	}
    }
    int sum(int x){
    	int ret=0;while(x){
    		ret=(ret+c[x])%P;
    		x-=lowbit(x);
    	}return ret;
    }
    int main(){
    	read(n);rep(i,1,n)read(a[i].x),a[i].id=i;rep(i,1,n)read(b[i].x),b[i].id=i;
    	sort(a+1,a+n+1,cmp);sort(b+1,b+n+1,cmp);
    	rep(i,1,n){
    		to[a[i].id]=b[i].id;
    	}
    	rep(i,1,n){
    		ans=(ans+sum(n)-sum(to[i]))%P;
    		add(to[i],1);
    	}
    	printf("%d",ans);
    	return 0;
    }
    
  • 相关阅读:
    SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)
    麦咖啡导致电脑不能上网
    SharePoint 2013 Central Admin 不能打开
    SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API)
    SharePoint 2013 APP 开发示例 系列
    synthesize(合成) keyword in IOS
    Git Cmd
    简单的正则匹配
    Dropbox
    SQL Server Replication
  • 原文地址:https://www.cnblogs.com/hangzz/p/13387256.html
Copyright © 2020-2023  润新知