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那个是为了增强代码的鲁棒性,删了也无关大雅,照样能够拿满分。

结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值