博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CCF 2020-线性分类器(C++实现
阅读量:3950 次
发布时间:2019-05-24

本文共 660 字,大约阅读时间需要 2 分钟。

目录)

题目

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

结果

在这里插入图片描述

解释

其实这道题很简单,就是仔细观察同类点的特征,它们分布在直线的某一侧,而我们知道直线一般方程:ax+by+c=0,那么点位于直线的那一侧,用判别式z=ax+by+c来判断当z>0时,或者当z<0时点的位置在哪里。对于本题,无需去判断点在直线的上方还是下方,直接判断相同的点是否在同一侧就可以了

代码

#include
using namespace std;struct dot{
int x,y; char tp; }d[1010];int main(){
int m,n,a0,a1,a2,t;//三个参数,t是判别式值 cin>>n>>m; for(int i=0;i
>d[i].x>>d[i].y>>d[i].tp; for(int i=0;i
>a0>>a1>>a2; int t0=a0+a1*d[0].x+a2*d[0].y;char c0=d[0].tp; int flag=0; for(int j=1;j
0&&t0>0&&c0!=d[j].tp) ||(t<0&&t0>0&&c0==d[j].tp)||(t>0&&t0<0&&c0==d[j].tp)){
//不成立的四个条件,不要漏了 flag=1;break; } } if(flag==0) cout<<"Yes\n"; else cout<<"No\n"; } return 0;}

转载地址:http://icwzi.baihongyu.com/

你可能感兴趣的文章
Java技术——Java中的参数传值方式
查看>>
Android开发——本地验证码的简易实现
查看>>
Java技术——CopyOnWriteArrayList源码解析
查看>>
Java技术——ReentrantLock的Condition的作用以及使用
查看>>
数据结构——搜索树树、B-树、B+树
查看>>
Android开发——带你彻底理解 Window 和 WindowManager
查看>>
设计模式——责任链模式详解
查看>>
设计模式——适配器模式详解
查看>>
设计模式——装饰模式详解
查看>>
Android开发——关于RxJava的知识总结
查看>>
Android开发——View的生命周期总结
查看>>
Android开发——Protocol Buffer的使用(比XML、Json快很多)
查看>>
Android开发——Android系统启动以及App启动过程
查看>>
Android开发——简述RxJava框架的实现原理
查看>>
Android开发——今日头条APK瘦身之路
查看>>
Android开发——使用ActivityLifecycleCallbacks监控App是否处于后台
查看>>
Android开发——Protocol Buffer效率之高的原理介绍
查看>>
Android开发——贝塞尔曲线解析
查看>>
Android开发——微信Android架构历史
查看>>
Android开发——ListView的复用机制源码解析
查看>>