cf 204 div2 D. Jeff and Furik 逆序对

来源:互联网 发布:数据库导入excle 编辑:程序博客网 时间:2024/05/17 02:59

     又一次看错题意……题目是两个人,一个人自己主观选择,一个人抛硬币,因为算期望,所以抛硬币那人可以无视掉,求出逆序对个数m,m为奇答案是2m-1,否则2m

    太囧

#include<iostream>#include<cstdlib>#include<cstdio>#include<algorithm>using namespace std;int org[100000];int c[100000];int ans=0;void out(int *a,int n){   for(int i=0;i<n;i++)      printf("%d ",a[i]);   puts("");}int meg(int l,int mid,int r){    int i=l,j=mid+1,k=0;    while(i<=mid)    {       while(j<=r&&org[i]>org[j])          c[k++]=org[j++];       ans+=j-mid-1;       c[k++]=org[i++];    }    while(j<=r)c[k++]=org[j++];    k=0;    while(l<=r)org[l++]=c[k++];}void count(int l,int r){    if(l<r)    {       int mid=(l+r)>>1;       count(l,mid);       count(mid+1,r);       meg(l,mid,r);    }}int main(){    int n;    while(~scanf("%d",&n))    {       ans=0;        int i;        for(i=0;i<n;i++)           scanf("%d",&org[i]);        count(0,n-1);        double t;        if(ans%2==0)ans*=2;        else ans=ans*2-1;        printf("%.6f\n",(double)(ans));    }}


原创粉丝点击