CCF CSP 2020-6-1 线性分类器 C语言100分
线性分类器 完成时间11-15 16:23 代码长度961B C 正确 100分 耗时15ms 代码长度2.550MB
思路:根据点带入直线表达式>0还是<0判断在直线的哪一侧。因为不知道A和B分别在哪一边,所以有两种情况:
A在下(A0)B在上(B1)
A在上(A1)B在下(B0)
所以A0+B1=n或A1+B0=n即为全部分类正确。
以下为C语言100分答案
#includetypedef struct line //ax+by+c=0 { float a; float b; float c; int A0; //标签为A在直线下方的点的个数 int A1; //同上 int B0; int B1; }LINE; typedef struct dot { int x; int y; char c; }DOT; int main() { int n,m; int i,j,t; scanf("%d %d", &n, &m); DOT dot[n]; LINE line[m]; for(i=0;i 0&&dot[j].c=='A') { line[i].A1++; } else if(t<0&&dot[j].c=='B') { line[i].B0++; } else if(t>0&&dot[j].c=='B') { line[i].B1++; } } } for(i=0;i



