问题描述
试题编号: | 202006-1 |
试题名称: | 线性分类器 |
时间限制: | 1.0s |
内存限制: | 512.0MB |
#include<stdio.h>
int main()
{
int n, m = 0;
scanf("%d %d",&n,&m);
//这里的数组初始化一定要注意10000,如果是1000会错误
int arr[10000][3];
int i, j = 0;
int a, b, c = 0;
//输入二维数组,前n行
for (i = 0; i < n; i++)
{
scanf("%d %d %c",&arr[i][0],&arr[i][1],&arr[i][2]);
getchar();
}
for (i = 0; i < m; i++)
{
scanf("%d %d %d", &a,&b,&c);
int flag = 0;
int t = 0;
for (j = 0; j < n; j++)
{
flag = a + b * arr[j][0] + c * arr[j][1];
//假设吧A类别都在直线上方
if (flag > 0 && arr[j][2] == 'A')
{
t += 1;
}
else if(flag < 0 && arr[j][2] == 'B')
{
t += 1;
}
}
if (t == 0 || t == n)
{
printf("Yes\n");
}
else {
printf("No\n");
}
}
return 0;
}