CCF小白刷题之路---202006-1 线性分类器(C/C++ 100分)

简介: CCF小白刷题之路---202006-1 线性分类器(C/C++ 100分)

一、题目描述
image.png
image.png
image.png
image.png
image.png
二、代码实现

#include<iostream>
using namespace std;
//用结构体来表示每一个点
struct Node{
    int x;
    int y;
    char type;
};

int main()
{
    Node node[1005];
    int n,m;
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        cin>>node[i].x>>node[i].y>>node[i].type;
    }
    int theta0,theta1,theta2;
    for(int i=0;i<m;i++)
    {
        cin>>theta0>>theta1>>theta2;
        //把点带入直线方程,如果值大于0,则记为1,小于0则记为0,
        //同类型的点带入直线方程应该具有相同的正负性,以此来判断直线是否符合标准
        int a[1005]={0};
        int b[1005]={0};
        int a_i=0,b_i=0;
        for(int j=0;j<n;j++)
        {
            if(node[j].type=='A')
            {
                if(theta0 + theta1 * node[j].x + theta2 * node[j].y > 0) a[a_i++] = 1;
                else a[a_i++] = 0;
            }
            else
            {
                if(theta0 + theta1 * node[j].x + theta2 * node[j].y > 0) b[b_i++] = 1;
                else b[b_i++] = 0;
            }
        }
        //标志符flag判断直线是否符合标准
        bool flag = true;
        for(int j=0;j<a_i-1;j++)
        {
            if(a[j]!=a[j+1])
            {
                flag = false;
                break;
            }
            else continue;
        }
        for(int j=0;j<b_i-1;j++)
        {
            if(b[j]!=b[j+1])
            {
                flag = false;
                break;
            }
            else continue;
        }
        if(flag==true) cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
    }
    return 0;
}
相关文章
|
2月前
|
算法 搜索推荐 程序员
C++标准库算法指南:从线性到复杂度 — 选择最佳工具
C++标准库算法指南:从线性到复杂度 — 选择最佳工具
48 0
|
10月前
|
存储 C++ 索引
C++学习笔记_18 线性容器(vector_list_deque)总结 2021-05-18
C++学习笔记_18 线性容器(vector_list_deque)总结 2021-05-18
|
10月前
|
C++ 容器
C++学习笔记_17 线性容器-Deque容器 2021-05-18
C++学习笔记_17 线性容器-Deque容器 2021-05-18
|
10月前
|
C++ 容器
C++学习笔记_16 线性容器-List容器 2021-05-13
C++学习笔记_16 线性容器-List容器 2021-05-13
|
10月前
|
C++ 容器
C++学习笔记_15 线性容器-vector容器 2021-05-12
C++学习笔记_15 线性容器-vector容器 2021-05-12
|
机器学习/深度学习 算法 安全
CCF—CSP第一题题解(C++)
CCF—CSP第一题题解(C++)
240 0
CCF—CSP第一题题解(C++)
|
C++
【牛客刷题】带你在牛客刷题第六弹(C/C++基础)
哈喽,今天是我们牛客刷题训练第五弹,今天我们来刷一些C/C++的问题,这些问题相对于你刚学习C/C++基础来说会很好的帮助自己理解,我相信,只要我们一步步去分析,肯定是可以得到正确的答案的,来我们一起加油。
81 0
【牛客刷题】带你在牛客刷题第六弹(C/C++基础)