https://nanti.jisuanke.com/t/41393
题意:给你n个点 让你加最少的点 让这个图中心对称 问 最少加几个点
思路:暴力枚举 N*N 寻找两个点的中间点 输入的时候乘2保证中间的点的坐标没有小数 然后用总点数-最多的中间点数即可
PS 这个题没有重点 有重点这样做不对的哦
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> PII; const int maxn=1e6+5; map<PII,int>MAP; int x[maxn],y[maxn]; int main() { int n; int ans=0; scanf("%d",&n); for(int i=1;i<=n;++i) { scanf("%d%d",&x[i],&y[i]); x[i]*=2; y[i]*=2; } for(int i=1;i<=n;++i) { for(int j=1;j<=n;++j) { int a=++MAP[PII((x[i]+x[j])/2,(y[i]+y[j])/2)]; if(a>ans)ans=a; } } printf("%d\n",n-ans); return 0; }
Comments | NOTHING