问题描述
试题编号: | 202006-1 |
试题名称: | 线性分类器 |
时间限制: | 1.0s |
内存限制: | 512.0MB |
问题描述: | |
#include<iostream>
#include<algorithm>
using namespace std;
struct Node{
int x,y;
char id[2];
}node[1010];
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>node[i].x>>node[i].y>>node[i].id;
int q1,q2,q0;
for(int i=0;i<m;i++){
cin>>q0>>q1>>q2;
int flag=1;
int f1=-1;
int f2=-1;
for(int j=0;j<n;j++){
int t=(q0+q1*node[j].x+q2*node[j].y)>0?1:0;
if(node[j].id[0]=='A'){
if(f1==-1){
f1=t;
}
else if(f1!=t){
flag=0;
break;
}
}
else if(node[j].id[0]=='B'){
if(f2==-1){
f2=t;
}
else if(f2!=t){
flag=0;
break;
}
}
if(f1==f2){
flag=0;
break;
}
}
printf("%s\n",flag?"Yes":"No");
}
}