AcWing 3287. 线性分类器csp19(2)
原题链接
简单
作者:
YAX_AC
,
2024-11-30 19:32:46
,
所有人可见
,
阅读 10
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const int N = 11000;
LL n,m;
vector<PII> a,b;
int main()
{
cin>>n>>m;
LL x,y;
char c;
for(int i = 1; i<=n; i++)
{
cin>>x>>y>>c;
if(c=='A')
{
a.push_back({x,y});
}
else
{
b.push_back({x,y});
}
}
while(m--)
{
LL c1,a1,b1;
cin>>c1>>a1>>b1;
LL sum1 = 0,sum2 = 0;
LL cnt_big1 = 0,cnt_small1 = 0;
LL cnt_big2 = 0,cnt_small2 = 0;
for(auto i:a)
{
sum1 = 0;
sum1 = i.first*a1+i.second*b1+c1;
if(sum1 > 0)
{
cnt_big1++;
}
else cnt_small1++;
}
for(auto i:b)
{
sum2 = 0;
sum2 = i.first*a1+i.second*b1+c1;
if(sum2 > 0)
{
cnt_big2++;
}
else cnt_small2++;
}
if((cnt_big1 == (int)a.size() && cnt_small2 == (int)b.size())||(cnt_small1==(int)a.size() && cnt_big2 == (int)b.size()))
puts("Yes");
else puts("No");
}
return 0;
}