栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 3763 Plasma Field

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 3763 Plasma Field

#include<cstdio>const double eps = 1e-8;double x0, y0, c, T;int n;double x, y, vx, vy;double A, B, C;double F(double t){    return A*t*t+B*t+C;}bool ok_min(double L, double R){    double low=L, top=R, m1, m2;    double s1, s2, s3;    while(top-low>eps){        m1 = low+(top-low)/3.0;        m2 = top-(top-low)/3.0;        s1 = F(m1);        s2 = F(m2);        if(s1<s2)   top = m2-eps;        else    low = m1+eps;    }    s1 = F(L);    s2 = F(R);    s3 = F(low);    if(s1*s3<eps || s2*s3<eps || s1*s2<eps)  return 1;    else    return 0;}bool ok_max(double L, double R){    double low=L, top=R, m1, m2;    double s1, s2, s3;    while(top-low>eps){        m1 = low+(top-low)/3.0;        m2 = top-(top-low)/3.0;        s1 = F(m1);        s2 = F(m2);        if(s1<s2)   low = m1+eps;        else    top = m2-eps;    }    s1 = F(L);    s2 = F(R);    s3 = F(low);    if(s1*s3<eps || s2*s3<eps || s1*s2<eps)  return 1;    else    return 0;}int check(){    A = vx*vx+vy*vy-c*c;    B = 2.0*((x-x0)*vx+(y-y0)*vy);    C = (x-x0)*(x-x0)+(y-y0)*(y-y0);    if(A<=0){        if(ok_max(0,T))    return 1;    }    else{        if(ok_min(0,T))    return 1;    }    B += 4.0*T*c*c;    C -= 4.0*T*T*c*c;    if(A<=0){        if(ok_max(T,T*2))    return 1;    }    else{        if(ok_min(T,T*2))    return 1;    }    return 0;}int main(){    while(~scanf("%lf %lf %lf %lf", &x0, &y0, &c, &T)){        scanf("%d", &n);        int ans=0;        while(n--){ scanf("%lf %lf %lf %lf", &x, &y, &vx, &vy); ans += check();        }        printf("%dn", ans);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376528.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号