yA[maxn];// 属于A类的第i个点的横、纵坐标intxB[maxn],yB[maxn];// 属于B类的第i个点的横、纵坐标intlenA=0,lenB=0;voidcal(inttheta1,inttheta2,inttheta3){intflag=1;if(theta1+theta2*xA[0]+theta3*yA[0]>0){// A组点在直线上面for(inti=0;i<lenA;++i)if...
1把A类的点坐标带入直线方程式(k1+k2X+k3Y)中,如果计算(并记录值的正负)出的值全部大于或者小于(由于点不落在直线上,因此不存在为0的情况),那么执行步骤2,否则,输出No,结束; 2 计算B类的点坐标带入直线方程式(k1+k2X+k3Y)中的值,如果计算出的值的符号和A类点的计算出的符号同号,输出No,结束,否则继...
202006-1 线性分类器题目描述考虑一个简单的二分类问题——将二维平面上的点分为A和B两类。训练数据包含n个点,其中第i个点(1≤i≤n1≤i≤n)可以表示为一个三元组(xi,yi,typeixi,yi,typei),即该点的横坐标、纵坐标和类别。在二维平面上,任意一条直线可以表示为θ0+θ1x+θ2y=0θ0+θ1x+θ2y=0...
第二行到第n+1行依次输入n个点的信息。第i+1行(1≤i≤n)包含用空格分隔的三项x,y和type,分别表示第i个点的横、纵坐标和类别,其中坐标为整数、类别为一个大写英文字母A或B。 第n+2行到第n+m+1行依次输入m个查询。第j+n+1行(1≤j≤m)包含用空格分隔的三个整数θ₀,θ₁和θ₂,表示第j个...
CCF-202006-1线性分类器 1 def judga(lis1,z): #判断列表lis1中点是否都在线z的一侧 2 s=0 3 for i in lis1: 4 if z[0]+i[0]*z[1]+i[1]*z[2]>0: 5 s+=1 6 if s==len(lis1) or s==0: 7 return True 8 else: 9 return False 10 11 12 13 def judg(x,y,z):#判断A类...
CCF 202006-1 线性分类器 #include <iostream> #include <bits/stdc++.h> #include <string> using namespace std; typedef struct { int x;int y;char type; }XY; vector<XY> xy; int theta0,theta1,theta2; bool AorB; bool topOrbelow(XY user) { if...
#原题目 #解题思路 三个参数确定一条直线的一般式方程 遍历每个点,将点坐标带入方程中,如果大于0,那么在一侧,如果小于0,在另一侧 记录大于0的点的类型,如果在后面的遍历中遇到大于0的点且类型不同的话,那么就输出"No" 记录小于0的点的类型,如果在后面的遍
C++实现CCF的202006-1线性分类器 题目地址:http://118.190.20.162/view.page?gpid=T105代码如下#include <bits/stdc++.h> using namespace std; int main(){ int m,n; cin>>n>>m; vector<int> x; vector<int> y; vector<char> c; // 获取坐标点 for...