UVA 1595 找对称轴(set)

题意

给出n个点的横纵坐标,是否可以找出一条竖线,使左右点都对称。

分析

这个想复杂了。。。

什么坐标离散化了。。
还有一直下意识的关心 点不能用重了。。。
各种标记之类的。。。

其实可以直接 用set遍历 找这一点,存在不存在关于轴对称的另一个点。。

代码

#include 

using namespace std;
typedef pair<int,int> P;
int main()
{
    //freopen("in.txt","r",stdin);
    int t;
    cin >> t;
    while(t--)
    {
        int n;
        cin >> n;
        set

s; int sum = 0; for(int i = 0; i < n; i++) { int x, y; cin >> x >> y; sum += x; s.insert(P(x*n,y)); } int f = 0; for(set

::iterator it = s.begin(); it != s.end(); it++) { P m = *it; if(s.find(P(sum*2.0-m.first,m.second)) == s.end()) { f = 1; break; } } cout << (f ? "NO" : "YES") << endl; } return 0; }

你可能感兴趣的:(ACM_STL,水题日记)