import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int point_count = scanner.nextInt();
int line_count = scanner.nextInt();
scanner.nextLine();
Map<String, List<Point>> pointMap = new HashMap<>();
for(int i = 0; i < point_count; i++){
String line = scanner.nextLine();
String[] arr = line.split(" ");
String categoryName = arr[2];
Point point = new Point(Double.valueOf(arr[0]), Double.valueOf(arr[1]));
if(pointMap.containsKey(categoryName)){
List<Point> pointList = pointMap.get(categoryName);
pointList.add(point);
}
else{
List<Point> pointList = new ArrayList<>();
pointList.add(point);
pointMap.put(categoryName,pointList);
}
}
for(int i = 0; i < line_count; i++){
double theta0 = scanner.nextDouble();
double theta1 = scanner.nextDouble();
double theta2 = scanner.nextDouble();
for(Map.Entry<String, List<Point>> entry : pointMap.entrySet()){
for(Point point : entry.getValue()){
double result = theta0 + theta1 * point.x + theta2 * point.y;
point.isPositive = result > 0 ? true : false;
}
}
boolean bFind = false;
for(Map.Entry<String, List<Point>> entry : pointMap.entrySet()){
Point pointFirst = entry.getValue().get(0);
for(Point point : entry.getValue()){
if(point.isPositive != pointFirst.isPositive){
System.out.println("No");
bFind = true;
break;
}
}
if(bFind){
break;
}
}
if(!bFind){
System.out.println("Yes");
}
}
}
}
class Point {
double x;
double y;
boolean isPositive = false;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
}
ccf202006-1线性分类器
最新推荐文章于 2024-07-18 16:29:57 发布