UVA1595(Symmetry)(Water Preblem)

UVA1595传送门
思路:枚举同一行的每两个点的中点横坐标,然后看全部“对称”点的中点横坐标是否相同,是输出YES,否输出NO。那如何枚举每两个"对称"点呢?很简单,先对每一行根据横坐标排序,然后每一行两端的点即相对中间对称必定是对称点!如果算出来不是对称点则证明此题没有一个纵列使其对称,至于如何证明大家可以根据样例演算一下。
AC代码(10ms)

#include 
#include 
#include 
#include 
#include 

using namespace std;
vector a[20010];

int main()
{
    int t;
    scanf("%d",&t);
    while(t--){
        int n,x,y;
        double l;
        bool flag = true,stand = true;
        vector::iterator it_b,it_e;
        scanf("%d",&n);
        for(int i = 0;i

你可能感兴趣的:(UVA1595(Symmetry)(Water Preblem))