CSP 202006-1 线性分类器(100)

CSP 202006-1 线性分类器(100)

在这里插入图片描述
在这里插入图片描述

思路:先记录每一个点,再输入线,每次输入线后,对所有的点进行遍历,计算在该线下该每个点的纵坐标值,若>改点的纵坐标则在下侧,否者在上册。

#include"bits/stdc++.h"
using namespace std;
struct Point{
	int x,y;
	char type[2];
}point[1006];
int n,m,a,b,c;
char part[]={' ',' '};
int main(){
	scanf("%d%d",&n,&m);
	for(int i = 0;i<n;i++)
		scanf("%d%d%s",&point[i].x,&point[i].y,point[i].type);		
	for(int i = 0;i<m;i++){
		scanf("%d%d%d",&a,&b,&c);
		bool f = true;
		part[0]=part[1]=' ';
		for(int j = 0;j<n;j++){
			if((-a-b*point[j].x)*1.0/c>point[j].y){
				if(part[0]!=' '&&part[0]!=point[j].type[0]){
					f = false;
					break;
				}
				part[0]=point[j].type[0];
			}
			else{
				if(part[1]!=' '&&part[1]!=point[j].type[0]){
					f = false;
					break;
				}
				part[1]=point[j].type[0];
			}
		}
		printf(f?"Yes\n":"No\n");
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值