30分求助!(玄关)
查看原帖
30分求助!(玄关)
1315459
Ericwer楼主2024/12/1 16:19

前三个过了,后面全WA

~感觉码风还可以~

#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
int m, n;
int a[N][N], b[N][N];
double ans[N];
int l[N^2], r[N^2];
int f(int i){
	double x = 0;
	for(int j = 1; j <= m; j++){
		x += pow((a[i][j] - a[i][j-1] - a[i][m] / m * 1.0), 2);
	}
	int y = 0;
	for(int j = 1; j <= m; j++){
		y += pow((b[i][j] - b[i][j-1] - b[i][m] / m * 1.0), 2);
	}
	return x + y;
}
int main(){
	cin >> n >> m;
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			cin >> a[i][j]; 
			a[i][j] += a[i][j - 1];
		}
	}
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			cin >> b[i][j]; 
			b[i][j] += b[i][j - 1];
		}
	}
	for(int i = 1; i <= n; i++){
		ans[i] = f(i);
		//cout << ans[i]<< endl;
	}
	int now = 1;
	for(int i = 1; i <= n; i++){
		for(int j = i; j <= n; j++){
			if(ans[i] > ans[j]){
				swap(ans[i], ans[j]);
				l[now] = i;
				r[now] = j;
				now++;
			}
		}
	}
	cout << now - 1 << endl;
	for(int i = 1; i < now; i++){
		cout << l[i] << " " << r[i] << endl;
	}
	return 0;
}
2024/12/1 16:19
加载中...