HDU 1006 Tick and Tick
2016-08-11 20:42
363 查看
这道题......感觉就是一道计算题了= =知道怎么算的能算出来就好了,不过一开始低估这个题了,把钟表想的是时针不动让分针先动一圈......好吧,那样太简单了,然后就开始算角速度,表示算了一张纸才把等式什么的捋清楚......不过最后还是没做出来= =不小心当成一个小时时针分针秒针相遇了,所以......这题弄了一天最后还是没弄出来,最后看的DISCUSS里的代码,才发现了这点错误,然后才修改过来(好吧,其实是大幅度的修改,因为代码少了个因素表示除了一开始列的式子全都改了= =).......
先发一下DISCUSS的代码链接:http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=4499&messageid=1&deep=0
额,具体这个怎么算貌似DISCUSS里面0o恋蓝o0 大神分析的也很清楚了......直接贴代码吧。
之前错的就不贴了.......
先发一下DISCUSS的代码链接:http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=4499&messageid=1&deep=0
额,具体这个怎么算貌似DISCUSS里面0o恋蓝o0 大神分析的也很清楚了......直接贴代码吧。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const double vh=1.0/120.0,vm=0.1,vs=6.0; double tmax(double a,double b,double c) { double t; t=a>b?a:b; if(t>c) return t; else return c; } double tmin(double a,double b,double c) { double t; t=a<b?a:b; if(t<c) return t; else return c; } int main() { double n,sum,s,e,ans; double tsm,tsh,tmh,ssm,ssh,smh,esm,esh,emh; double st1,st2,st3,et1,et2,et3; int i; while(scanf("%lf",&n)!=EOF) { if(n==-1) break; sum=0.0; tsm=360.0/(vs-vm); tsh=360.0/(vs-vh); tmh=360.0/(vm-vh); //相遇时间 ssm=n/(vs-vm); ssh=n/(vs-vh); smh=n/(vm-vh); esm=360.0/(vs-vm)-ssm; esh=360.0/(vs-vh)-ssh; emh=360.0/(vm-vh)-smh; for(st3=smh,et3=emh;et3<=43200;st3=st3+tmh,et3=et3+tmh) { for(st2=ssh,et2=esh;et2<=43200;st2=st2+tsh,et2=et2+tsh) { if(et2<st3) continue; if(st2>et3) break; //如果时间的区间不相重合 for(i=0,st1=ssm,et1=esm;et1<=43200;++i,st1=ssm+(double)i*tsm,et1=esm+(double)i*tsm) { if(et1<st3||et1<st2) continue; if(st1>et3||st1>et2) break; s=tmax(st1,st2,st3); e=tmin(et1,et2,et3); sum=sum+e-s; } } } ans=sum/432.0; printf("%.3f\n",ans); } return 0; }
之前错的就不贴了.......
相关文章推荐
- hdu 1006 Tick and Tick
- HDU 1006 Tick and Tick
- hdu 1006 Tick and Tick 数学+枚举
- [HDU 1006] Tick and Tick 模拟题
- Hdu 1006 Tick and Tick
- HDU-1006 Tick and Tick 几何
- hdu 1006 Tick and Tick
- [ACM_模拟] HDU 1006 Tick and Tick [时钟间隔角度问题]
- [HDU]1006 Tick and Tick
- HDU-1006 Tick and Tick(模拟 + 区间交集 + 数学)
- hdu_1006 Tick and Tick(暴力模拟)
- hdu 1006 Tick and Tick (解不等式方程)
- hdu 1006 Tick and Tick (解不等式方程)
- HDU 1006 Tick and Tick 解不等式解法
- HDU_1006_Tick and Tick
- hdu 1006 Tick and Tick
- HDU 1006 Tick and Tick
- HDU-1006-Tick and Tick
- HDU 1006 Tick and Tick 时钟指针问题
- hdu 1006 Tick and Tick 时钟问题