Symmetry【暴力列舉】
阿新 • • 發佈:2019-01-09
原題網址:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=836&page=show_problem&problem=4470
原本自己想的太複雜了,當成判斷能否找到任意一條直線滿足所有點對稱,然後發現寫了好長還是考慮不全多有的情況,搜了一下大神的部落格,才發現自己真是才疏智淺.......
唉...
然後暴力也是欠缺了細節的考慮,錯了好幾遍.....
#include<stdio.h> int x[1005],y[1005],n,mid; int search(int i) { for(int j=0;j<n;++j) { if(x[i]+x[j]==mid&&y[i]==y[j]) { return 1; } } return 0; } int judge() { for(int i=0;i<n;++i) { if(!search(i)) { return 0; } } return 1; } int main() { int t; //freopen("shuju.txt","r",stdin); scanf("%d",&t); while(t--) { int l=0,r=0; scanf("%d",&n); for(int i=0;i<n;++i) { scanf("%d%d",&x[i],&y[i]); l=(x[i]<x[l])?i:l; r=(x[i]>x[r])?i:r; } mid=x[l]+x[r]; if(judge()) { printf("YES\n"); } else { printf("NO\n"); } } return 0; }