csp刷题 【202006-1线性分类器】

采用c++答题

查看题目请点击: csp官网.

代码如下

#include<iostream>
using namespace std;
struct Point{
 int x;
 int y;
 char type;
};
int main()
{
 int n,m;
 cin>>n>>m;
 Point point[n];
 int var[m][3]; 
 for(int i=0;i<n;i++)
 {
  cin>>point[i].x>>point[i].y>>point[i].type;
 }
 for(int j=0;j<m;j++)
 {
  cin>>var[j][0]>>var[j][1]>>var[j][2]; 
    }
 for(int j=0;j<m;j++)
 {
  int k0=var[j][0];
  int k1=var[j][1];
  int k2=var[j][2];
  int flag1=0;
  int flag2=0;
  for (int i=0;i<n;i++)
  {
   char type=point[i].type;
   int  res=k0+k1*point[i].x+k2*point[i].y;
   if(type=='A')
   {
    if(res>0)
    {
    flag1++;
    }
    else if(res<0)
    {
    flag2++; 
    } 
   }
   else if(type=='B')
   {
    if(res>0)
    {
    flag2++;
    }
    else if(res<0)
    {
    flag1++; 
    } 
   }
  }
 if(flag1==n||flag2==n)
   cout<<"Yes"<<endl; 
 else
   cout<<"No"<<endl;
    }  
 return 0;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值