CCF-CSP-2020-06-1线性分类器
题目链接:http://118.190.20.162/view.page?gpid=T105
坑点:惩罚爆int 要用long long
代码:
#include<bits/stdc++.h>
using namespace std;
struct node{
int x,y;
node(int _x,int _y):x(_x),y(_y){}
};
vector<node>a,b;
long long nt,nx,ny;
bool check(){
long long atm;
int al=0,bl=0;
for(int i=0;i<a.size();i++){
atm=nt+nx*a[i].x+ny*a[i].y;
if(atm>0)al++;
}
for(int i=0;i<b.size();i++){
atm=nt+nx*b[i].x+ny*b[i].y;
if(atm>0)bl++;
}
if((al==a.size()&&bl==0)||(al==0&&bl==b.size()))return true;
return false;
}
struct {
long long t,x,y;
}ans[25];
int main (){
int n,m;
cin>>n>>m;
int x,y;
char ch;
for(int i=0;i<n;i++){
cin>>x>>y>>ch;
if(ch=='A'){
a.push_back(node(x,y));
}
else {
b.push_back(node(x,y));
}
}
for(int i=0;i<m;i++){
cin>>ans[i].t>>ans[i].x>>ans[i].y;
}
for(int i=0;i<m;i++){
nt=ans[i].t;
nx=ans[i].x;
ny=ans[i].y;
if(check())
cout<<"Yes";
else
cout<<"No";
if(i!=m-1)cout<<endl;
}
return 0;
}
/*
9 4
1 1 A
1 0 A
1 -1 A
2 2 B
2 3 B
0 1 A
3 1 B
1 3 B
2 0 A
0 2 -3
-3 0 2
-3 1 1
0 2 -3
*/

浙公网安备 33010602011771号