CCF 202006-1 线性分类器(Python满分)
满分代码(Python)
n,m = map(int,input().split())
b = []
count_A = 0
count_B = 0
for i in range(n):
a = list(input().split())
a[0] = int(a[0])
a[1] = int(a[1])
a[2] = ord(a[2])
if (a[2] == 65):
count_A += 1
else:
count_B += 1
b.append(a)
def takeword(elem):
return elem[2]
b.sort(key = takeword)
for i in range(m):
c = list(map(int,input().split()))
dayu_A=0
xiaoyu_A=0
dayu_B=0
xiaoyu_B=0
for j in range(count_A):
if((c[0]+c[1]*b[j][0]+c[2]*b[j][1])>0):
dayu_A += 1
else:
xiaoyu_A += 1
for k in range(count_B):
if((c[0]+c[1]*b[k+count_A][0]+c[2]*b[k+count_A][1])>0):
dayu_B += 1
else:
xiaoyu_B += 1
if(dayu_A == count_A)and(xiaoyu_B == count_B):
print('Yes')
elif(xiaoyu_A == count_A)and(dayu_B == count_B):
print('Yes')
else:
print('No')
效果展示