#include <bits/stdc++.h>
using namespace std;
const int maxn = 25;
struct Node{
int x,y;
};
Node node;
vector<Node> A;
vector<Node> B;
vector<Node>::iterator A_it,B_it;
int n,m;
int t1,t2,t0;
int is[maxn];
map<int,string> m_ans;
bool detect(Node node)
{
if(t0+(node.x)*t1+t2*(node.y)>0)
return 1;
else if(t0+(node.x)*t1+t2*(node.y)<0)
return 0;
}
int main()
{
fill(is,is+maxn,1);
m_ans[0]="No";
m_ans[1]="Yes";
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int i,j;
char type;
cin>>n>>m;
for(i=0;i<n;i++)
{
cin>>node.x>>node.y;
cin>>type;
if(type == 'A')
A.push_back(node);
else if(type == 'B')
B.push_back(node);
}
for(i=0;i<m;i++)
{
cin>>t0>>t1>>t2;
bool flag = detect(A[0]);
for(j=1;j<A.size();j++)
if(detect(A[j])!=flag)
is[i] = 0;
for(j=0;j<B.size();j++)
if(detect(B[j])==flag)
is[i] = 0;
}
for(i=0;i<m-1;i++)
cout<<m_ans[is[i]]<<endl;
cout<<m_ans[is[i]];
return 0;
}
Kleines Problem des linearen Klassifikators-CCF 202006-1
Ich denke du magst
Origin blog.csdn.net/weixin_44142774/article/details/114632322
Empfohlen
Rangfolge