快捷搜索: 王者荣耀 脱发

CCF_202006-1试题及答案(Java )

题目

分析

不用担心时间和空间,直接代入计算就行。

代码

import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sca=new Scanner(System.in);
		String s=sca.nextLine();
		String[] sa=s.split(" ");
		int n=Integer.valueOf(sa[0]);
		int m=Integer.valueOf(sa[1]); 
		int[][] A=new int[n][2];
		int[][] B=new int[n][2];
		int countA=0,countB=0;
		for(int i=0;i<n;i++) {
			s=sca.nextLine();
			String[] sa2=s.split(" ");
			int a=Integer.valueOf(sa2[0]);
			int b=Integer.valueOf(sa2[1]);
			if(sa2[2].equals("A")) {
				A[countA][0]=a;
				A[countA][1]=b;
				countA++;
			}
			else {
				B[countB][0]=a;
				B[countB][1]=b;
				countB++;
			}
		}
		for(int i=0;i<m;i++) {
			s=sca.nextLine();
			String[] sa2=s.split(" ");
			int a=Integer.valueOf(sa2[0]);
			int b=Integer.valueOf(sa2[1]);
			int c=Integer.valueOf(sa2[2]);
			int judgeA=judge(a,b,c,A[0]);
			if(countA>1)
				for(int j=1;j<countA;j++) {
					if(judge(a,b,c,A[j])!=judgeA) {
						System.out.println("No");
						break;
					}
					else if(j==countA-1) {
						for(int k=0;k<countB;k++) {
							if(judge(a,b,c,B[k])!=(3-judgeA)) {
								System.out.println("No");
								break;
							}
							else if(k==countB-1)
								System.out.println("Yes");
						}
					}
				}
			else {
				for(int k=0;k<countB;k++) {
					if(judge(a,b,c,B[k])!=(3-judgeA)) {
						System.out.println("No");
						break;
					}
					else if(k==countB-1)
						System.out.println("Yes");
				}
			}
		}
		sca.close();

	}
	public static int judge(int a ,int b,int c,int[] xy) {
		if((a+b*xy[0]+c*xy[1])==0)
			return 0;
		else if((a+b*xy[0]+c*xy[1])>0)
			return 1;
		else
			return 2;
	}
}

判断A类点数是否大于1那个是为了增强代码的鲁棒性,删了也无关大雅,照样能够拿满分。

结果

经验分享 程序员 微信小程序 职场和发展