zoukankan      html  css  js  c++  java
  • hdu1006

    #include<stdio.h>
    #include
    using namespace std;
    #define INF 0x7fffffff
    double D;
    struct node
    {
    double l;
    double r;
    }s[3][2];
    node interval(double a,double b)//解方程D<=|a*s-b|<=360-D
    {
    node p;
    if(a>0)
    {
    p.l=(D-b)/a;
    p.r=(360-D-b)/a;
    }
    else
    {
    p.l=(360-D-b)/a;
    p.r=(D-b)/a;
    }
    if(p.l>=p.r)
    {
    p.l=0;
    p.r=0;
    }
    if(p.l<0)
    p.l=0;
    if(p.r>60)
    p.r=60;
    return p;
    }

    node jiao(node a,node b)
    {
    node p;
    p.l=max(a.l,b.l);
    p.r=min(a.r,b.r);
    if(p.l>=p.r) p.l=p.r=0;
    return p;
    }
    double solve(int h,int m)
    {
    double a,b;
    /*
    时针与分针的角度处理
    解方程式 D<=|hw-mw|<=360-D
    hw=(h+m/60+s/3600)30
    mw=(m+s/60)6
    /
    a=1.0/120.0-1.0/10.0;
    b=30
    h+m/2.0-6.0
    m;
    s[0][0]=interval(a,b);
    s[0][1]=interval(-a,-b);
    /

    时针与秒针的角度处理
    解方程式 D<=|hw-sw|<=360-D
    hw=(h+m/60+s/3600)30
    sw=s
    6
    /
    a=1.0/120-6.0;
    b=30
    h+m/2.0;
    s[1][0]=interval(a,b);
    s[1][1]=interval(-a,-b);
    /*
    分针与秒针的角度处理
    解方程式 D<=|mw-sw|<=360-D
    mw=(m+s/3600)30
    sw=s
    6
    /
    a=0.1-6;
    b=6
    m;
    s[2][0]=interval(a,b);
    s[2][1]=interval(-a,-b);
    //两个绝对值出来的区间取并集,三个并集之间取交集
    node s1;
    double res=0;
    for(int i=0;i<2;i++)
    for(int j=0;j<2;j++)
    for(int k=0;k<2;k++)
    {
    s1=jiao(jiao(s[0][i],s[1][j]),s[2][k]);
    res+=s1.r-s1.l;
    }
    return res;
    }
    int main()
    {
    while(scanf("%lf",&D)!=EOF)
    {
    if(D==-1)
    break;
    double ans=0;
    for(int i=0;i<12;i++)
    {
    for(int j=0;j<60;j++)
    ans+=solve(i,j);//i小时j分钟
    }
    printf("%.3f ",100.0ans/(6060*12));
    }
    return 0;
    }

  • 相关阅读:
    微众银行面试小总结
    关于撑开父容器高度的小探讨
    2015年9月阿里校招前端工程师笔试题
    高性能JavaScript 重排与重绘
    高性能JavaScript DOM编程
    纯CSS3动画实现小黄人
    JS+css3实现图片画廊效果总结
    新游戏《机械险境》
    Twitter "fave"动画
    fragment 与 activity
  • 原文地址:https://www.cnblogs.com/wangkun1993/p/6268995.html
Copyright © 2011-2022 走看看