UVA 1595 Symmetry(对称轴)

来源:互联网 发布:linux jdk1.8 编辑:程序博客网 时间:2024/04/30 02:21

题意:给定坐标,计算能否找到一条竖线,使左右两边的点对称

思路:输入的过程中计算出最左和最右边界,然后计算出中点值,然后对每个点进行遍历,如果找不到一个点满足x1+x2=mid*2&&y1==y2,则说明不合题意,直接break,如果遍历完的话,说明都符合题意,说明可以找到竖线.

import java.util.Scanner;public class Main {static int maxn = 1000;static int[] x = new int[maxn+10];static int[] y = new int[maxn+10];static int mid,n;public static void main(String[] args) {Scanner scan = new Scanner(System.in);int t = scan.nextInt();while(t--!=0){n = scan.nextInt();int lx = 0,rx = 0;for(int i=0;i<n;i++){int a = scan.nextInt();y[i] = scan.nextInt();x[i] = a*2;if(x[i]<x[lx])lx = i;if(x[i]>x[rx])rx = i;}mid = (x[lx]+x[rx])/2;int i = 0;for(;i<n;i++){if(!isHave(i)){break;}}if(i>=n){System.out.println("YES");}else{System.out.println("NO");}}}public static boolean isHave(int i){for(int j=0;j<n;j++){if(y[i]==y[j]&&x[i]+x[j]==2*mid)return true;}return false;}}


0 0
原创粉丝点击