HDU1006
single line with a real number D between 0 and 120, inclusively. The input is
terminated with a D of -1.
time in a day that all of the hands are happy, accurate up to 3 decimal
places.
#include <stdio.h>
#include <math.h>
#include<iostream>
#include <algorithm>
using namespace std;
struct qujian
{
double l,r;
};
double D; qujian solve(double a,double b) //解方程 D<=a*x+b<=360-D ,并且和 [0,60] 取交集
{
qujian p1;
if(a>)
{
p1.l=(D-b)/a;
p1.r=(-D-b)/a;
}
else
{
p1.l=(-D-b)/a;
p1.r=(D-b)/a;
}
if(p1.l<)
p1.l=;
if(p1.r>)
p1.r=;
if(p1.l>=p1.r)
p1.l=p1.r=;
return p1;
}
qujian compare(qujian a,qujian b)
{
qujian p;
p.l=max(a.l,b.l);
p.r=min(a.r,b.r);
if(p.l>p.r)
p.l=p.r=;
return p;
} double happytime(double h,double m)
{
double a,b;
int i,j,k;
qujian s[][],p2; //解方程D<=|hh-mm|<=360-D
a=1.0/120.0-0.1; //hh=30*h+m/2+s/120;
b=*h+m/2.0-*m;
s[][]=solve(a,b);
s[][]=solve(-a,-b); a=0.1-;
b=*m;
s[][]=solve(a,b);
s[][]=solve(-a,-b); a=1.0/-;
b=*h+m/2.0;
s[][]=solve(a,b);
s[][]=solve(-a,-b); double ans=;
for(i=; i<; i++)
{
for(j=; j<; j++)
for(k=; k<; k++)
{
p2=compare(compare(s[][i],s[][j]),s[][k]);
ans+=p2.r-p2.l;
}
}
return ans;
} int main()
{
while(scanf("%lf",&D))
{
if(D==-)
break;
double h,m,ans=;
for(h=; h<; h++)
{
for(m=; m<; m++)
ans+=happytime(h,m);
}
printf("%.3lf\n",ans*100.0/(**));
}
return ;
}
HDU1006的更多相关文章
- HDU--1006
题目介绍 Problem Description The three hands of the clock are rotating every second and meeting each oth ...
- hdu1006 Tick and Tick
原题链接 Tick and Tick 题意 计算时针.分针.秒针24小时之内三个指针之间相差大于等于n度一天内所占百分比. 思路 每隔12小时时针.分针.秒针全部指向0,那么只需要计算12小时内的百分 ...
- hdu1006 Tick and Tick (数学题 借鉴了大神的博客)
先缩短一半的时间:早上的12个小时和下午的12小时对时钟是一样的,因为时钟12小时与0小时的三针位置相同.接着就是了解到每次所有的针从有重合到再次有重合至多有一段连续的段符合三针分离度大于n.所以只要 ...
- 【hdu1006】解方程
http://acm.hdu.edu.cn/showproblem.php?pid=1006 这题坑了我好久,发现居然是一个除法变成了整除,TAT,所以建议在写较长的运算表达式的时候出现了除法尽量加个 ...
- hdu_1006 Tick and Tick(暴力模拟)
hdu1006 标签(空格分隔): 暴力枚举 好久没有打题了,退队了有好几个月了,从心底不依赖那个人了,原来以为的爱情戏原来都只是我的独角戏.之前的我有时候好希望有个人出现,告诉自己去哪里,做什么,哪 ...
随机推荐
- 性能测试脚本新玩法---fiddler&&Jmeter
飞测说:最近接触移动项目,测试app,需要做移动app的性能测试,想通过代理来录制,但是jmeter的代理录制效果真心不是很好,自己一个个请求来写代码,太浪时间了,那么有没有其他的办法呢? 我们都知道 ...
- com学习(一)GUID 和 接口
话说在 doc(Word) 复合文件中,已经解决了保存 xls(Excel) 数据的问题了.那么,接下来又要解决另一个问题:当 WORD 程序读取复合文件,遇到了 xls 数据的时候,它该如何启动 E ...
- jQuery 的随机密码生成 .
$.extend({ password: function (length, special) { var iteration = 0; var password = ""; va ...
- KMP算法模板
不懂的话推荐看这篇博客,讲的很清楚 http://blog.csdn.net/v_july_v/article/details/7041827 #include<iostream> #in ...
- Iphone5S 体验(视频+截图)
Iphone5S眨眼从外观看和5区别不大,仔细一看后面,最大的变化还是闪光灯,内部使用了A7的处理器运算速度增强了不少.无论照相还是FaceTime摄像都非常清晰,就连常用的手电筒和动态天气预报都考虑 ...
- fluentd正则表达式
一: 匹配上则取否则不取 匹配规则为 \[sv=(?<sv>[^\]]*?)\].*?\[os=(?<os>[^\]]*?)\].*?\[net=(?<net>[^ ...
- 在Eclipse中查看JDK类库的源代码
http://blog.csdn.net/a81895898/article/details/8486802 在Eclipse中查看JDK类库的源代码!!! 设置: 1.点 “window”-> ...
- Django搭建及源码分析(二)
上节针对linux最小系统,如何安装Django,以及配置简单的Django环境进行了说明. 本节从由Django生成的manage.py开始,分析Django源码.python版本2.6,Djang ...
- 树莓派(Rospberry Pi B+)到货亲测
1 图鉴 Rospberry Pi B+终于在今天下午有蜗牛快递公司圆*送到了.B+主要是增加了2个USB,增加了GPIO,sd卡换成了micro sd ...先不说直接上图再说,期待了好久好久 整 ...
- JS创建对象的方式
1.采用直接量创建方式:系统会使用new方式自动创建对象 var o = {x:1,y:2,z:2}; 2.采用new关键字创建对象:采用构造函数创建对象 var o = new Object();/ ...