首页 > 其他 > 详细

题解 CF21B 【Intersection】

时间:2019-10-27 22:16:36      阅读:86      评论:0      收藏:0      [点我收藏+]

写在前面

这种题不应该一遍\(A\)么?技术分享图片技术分享图片

Idea

这是一道数学题。

答案会有0(平行),1(相交),-1(重合),三种

代码中注释技术分享图片

Code

//可能是写法问题,跑的很慢;或许是我自带常数极大(雾?
namespace Sol{
    int a1,b1,c1,a2,b2,c2;
    inline int check(){
        if((a1==0&&b1==0&&c1!=0)||(a2==0&&b2==0&&c2!=0)) return 0;
        int f=1;//只有0个(平行),1个(相交),-1(无限);
        if((a2==0&&b2==0)||(a1==0&&b1==0)) return -1;//任意一点;
        else if(a1!=0&&b1!=0){//有斜率;
            if(a2!=0&&b2!=0){
                if(a1*b2==a2*b1){//斜率相同
                    if(c1*b2==c2*b1) return -1;//过同一点说明重合;
                    else f=0;//斜率相同不过同一点说明平行;
                }
            }
        }
        else{
            if(a1==0&&b1!=0){//一条横线;
                if(a2==0&&b2!=0){
                    if(c2*b1==c1*b2) f=-1;//过同一点;
                    else f=0;
                }
            }
            else{//一条竖线;
                if(a2!=0&&b2==0){
                    if(c2*a1==c1*a2) f=-1;//过同一点;
                    else f=0;
                }
            }
        }
        return f;
    }
    inline int Main(){
        a1=read(); b1=read(); c1=read(); 
        a2=read(); b2=read(); c2=read();
        int f=check();
        printf("%d",f);
        return 0;
    } 
}

\[ \mathcal The \quad End \]

\[ \text{我们都是小怪兽,有一天会被正义的奥特曼杀死。-《龙族》上杉绘梨衣(原谅我的臭屁~~)} \]

题解 CF21B 【Intersection】

原文:https://www.cnblogs.com/cbyyc/p/11749127.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!