题意:n个点,求最小加上几个点让所有点关于一个点(不需要是点集里面的点)中心对称
题解:双重循环枚举,把中点记录一下,结果是n-最大的中点
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define mem(s) memset(s, 0, sizeof(s))
const int INF = 0x3f3f3f3f;
const double eps = 1e-8;
const int maxn = 1000+5;
const int mod = 998244353;
pair<int,int>P[maxn],tmp;
map<pair<int,int>,int>mp;
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d%d",&P[i].first,&P[i].second);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
mp[make_pair((P[i].first+P[j].first),(P[i].second+P[j].second))]+=2;
}
}
map<pair<int,int>,int>::iterator it;
int ans=0;
for(it=mp.begin();it!=mp.end();it++){
ans=max(it->second,ans);
}
cout<<n-ans<<endl;
return 0;
}