求调 70pts
查看原帖
求调 70pts
580868
juchenglin楼主2023/3/5 16:10
#include<bits/stdc++.h>
#define MAXN 10000
#define int1 long long
int a[MAXN][MAXN],b[MAXN*MAXN][2];
long double un[MAXN]={0.0};
int main()
{
    long long m,n,s,time;
    long double ave;
    scanf("%lld %lld",&n,&m);
    for(long long i=1;i<=m;++i)
    {
        s=0;
        for(long long j=1;j<=n;j++)
        {
            scanf("%d",&a[i][j]);
            s+=a[i][j];
        }
        ave=(double)s/(double)n;
        for(long long j=1;j<=n;++j)
        {
            un[i]+=(double)(a[i][j]-ave)*(double)(a[i][j]-ave);
        }
    }
    for(int1 i=1;i<=m;++i)
    {
        s=0;
        for(int1 j=1;j<=n;j++)
        {
            scanf("%d",&a[i][j]);
            s+=a[i][j];
        }
        ave=(double)s/(double)n;
        for(int1 j=1;j<=n;++j)
        {
            un[i]+=(double)(a[i][j]-ave)*(double)(a[i][j]-ave);
        }
        un[i]/=(double)n;
    }
    time=0;
    for(int1 i=n-1;i>=0;--i)
    {
        double M=-1;
        int t=0;
        for(int1 j=0;j<i;++j)
        {
            if(un[j]>M)
            {
                M=un[j];
                t=j;
            }
        }
        if(un[i]<M)
        {
            b[time][0]=t;
            b[time][1]=i;
            ++time;
            std::swap(un[i],un[t]);
        }
    }
    std::cout<<time<<std::endl;
    for(int1 i=0;i<time;++i)
    {
        std::cout<<b[i][0]<<" "<<b[i][1]<<std::endl;
    }
    return 0;
}
2023/3/5 16:10
加载中...