AcWing 3287. 线性分类器(包含易错点标注)
原题链接
简单
作者:
未来可期_8
,
2025-03-24 22:47:14
·北京
,
所有人可见
,
阅读 1
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,m;
const int N=1010;
struct Pount{
ll x,y;
char z;
}p[N];
int get(int a,int b,int c,char d){
int s=0;
for(int i=0;i<n;i++){
if(p[i].z==d){
if(a+b*p[i].x+c*p[i].y>0) s|=1;
else s|=2;
}
}
return s;
}
bool check(int a,int b,int c){
int s1=get(a,b,c,'A'),s2=get(a,b,c,'B');
if(s1==1 && s2==2) return true;
else if(s1==2 && s2==1) return true;
return false;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>p[i].x>>p[i].y>>p[i].z;
}
for(int i=0;i<m;i++){
int a,b,c;
cin>>a>>b>>c;
if(check(a,b,c)) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}