鸭蛋求助!悬赏关注!
查看原帖
鸭蛋求助!悬赏关注!
494699
卷王慢即快楼主2023/1/10 11:09
#include <bits/stdc++.h>
using namespace std;
int m, n, top = 0;
int a[101][101], b[101][101];
double c[101];
int u[101], v[101];
inline int read()
{
	int x = 0, f = 1;
	char ch = getchar();
	while(ch < '0' || ch > '9')
	{
		if(ch == '-') f = -1;
		ch = getchar();
	}
	while(ch >= '0' && ch <= '9')
	{
		x = (x << 1) + (x << 3) + (ch ^ 48);
		ch = getchar();
	}
	return x * f;
}
int main()
{
	m = read(), n = read();
	for(int i = 1; i <= n; i++)
	{
		double sum = 0, ans = 0;
		for(int j = 1; j <= m; j++)
		{
			a[i][j] = read();
			sum += double(a[i][j]);
		}
		sum = sum * 1.0 / m;
		for(int j = 1; j <= m; j++)
			ans += double(a[i][j] - sum) * (a[i][j] - sum);
		ans = ans * 1.0 / m;
		c[i] += ans;
	}
	for(int i = 1; i <= n; i++)
	{
		double sum = 0, ans = 0;
		for(int j = 1; j <= m; j++)
		{
			b[i][j] = read();
			sum += double(b[i][j]);
		}
		sum = sum * 1.0 / m;
		for(int j = 1; j <= m; j++)
			ans += double(b[i][j] - sum) * (b[i][j] - sum);
		ans = ans * 1.0 / m;
		c[i] += ans;
	}
	for(int i = 1; i <= n; i++)
		for(int j = i + 1; j <= n; j++)
			if(c[i] >= c[j])
			{
				swap(c[i], c[j]);
				u[++top] = i;
				v[top] = j;
			}
	printf("%d\n", top);
	for(int i = 1; i <= top; i++)
		printf("%d %d\n", u[i], v[i]);
	return 0;
}
2023/1/10 11:09
加载中...