40pts求条
查看原帖
40pts求条
1271334
maimai_slide_madman楼主2025/6/18 19:23

rt.

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=1e5+10;

char buf[15000005],*p1(0),*p2(0);
#define gc() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1500004, stdin), p1 == p2) ? EOF : *p1++)

template<typename T>inline void read(T&x){
	
	x=0;
	char c;
	bool f=0;
	
	do{
		
		c=gc();
		if(c=='-') f=1;
	}while(c<'0');
	
	do{
		
		x=(x<<3)+(x<<1)+c-'0';
		c=gc();
	}while(c>='0');
	
	if(f) x=~x+1;
}

ll n,m,k;
ll a[N];
double l[N];
vector<pair<ll,ll> > ans;

int main(){
	
	read(m),read(n);
	for(int i=1;i<=n;i++){
		
		double op=0;
		for(int j=1;j<=m;j++){
			
			read(a[j]);
			op+=a[j];
		}
		op/=m;
		
		for(int j=1;j<=m;j++){
			
			l[i]+=(a[j]-op)*(a[j]-op);
		}
		l[i]/=m;
	}
	for(int i=1;i<=n;i++){
		
		double op=0;
		for(int j=1;j<=m;j++){
			
			read(a[j]);
			op+=a[j];
		}
		op/=m;
		
		for(int j=1;j<=m;j++){
			
			l[i]+=(a[j]-op)*(a[j]-op);
		}
		l[i]/=m;
	}
	
	for(int i=1;i<n;i++){
		
		for(int j=i+1;j<=n;j++){
			
			if(l[j]<l[i]){
				
				swap(l[i],l[j]);
				ans.push_back({i,j});
			}
		}
	}
	
	k=ans.size();
	printf("%lld\n",k);
	for(auto v:ans){
		
		printf("%lld %lld\n",v.first,v.second);
	}
	
	return 0;
}
2025/6/18 19:23
加载中...