UVA1595-对称轴

来源:互联网 发布:成为算法工程师 编辑:程序博客网 时间:2024/04/30 02:26

这道题有个坑,即有可能存在x坐标相同,y坐标不同的点。

解法很简单,记录每个点,排序,遍历,看看是不是每个点关于对称轴的对称点是否存在。

#include <iostream>#include <string>#include <vector>#include <set>#include <map>#include <sstream>#include <fstream>using namespace std;typedef pair<int,int> point;int main(){int T;cin>>T;for(int i=0;i<T;i++){int n;set<point> data;cin>>n;int sum = 0;for(int j=0;j<n;j++){int x,y;cin>>x>>y;sum+=x;data.insert(point(x*n,y));}bool flag = true;for(set<point>::iterator i=data.begin();i!=data.end();i++){point p = *i;if(data.find(point(2*sum-p.first,p.second))==data.end()){flag = false;break;}}if(flag==true){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}}return 0;}


0 0
原创粉丝点击