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 标签(空格分隔): 暴力枚举 好久没有打题了,退队了有好几个月了,从心底不依赖那个人了,原来以为的爱情戏原来都只是我的独角戏.之前的我有时候好希望有个人出现,告诉自己去哪里,做什么,哪 ...
随机推荐
- 【Unity Shaders】学习笔记——SurfaceShader(十一)光照模型
[Unity Shaders]学习笔记——SurfaceShader(十一)光照模型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5664792.html ...
- 《FPGA全程进阶---实战演练》第二十一章 电源常用类型:LDO和 DCDC
高速电路中的电源设计 高速电路中的电源设计大概分为两种,一种是集总式架构,一种是分布式架构.集总式架构就是由一个电源输入,然后生成多种所需要的电压.如图1所示.这种架构会增加多个DC/DC模块,这样成 ...
- Solum入门知识(编辑中)
概要 参考:https://wiki.openstack.org/wiki/Solum An OpenStack project designed to make cloud services eas ...
- 【LeetCode】16. 3Sum Closest
题目: Given an array S of n integers, find three integers in S such that the sum is closest to a given ...
- OC项目中使用Swift
1.在OC工程中新建 Swift 文件,会提示的是否创建一个桥接文件,创建不创建都无所谓,这个桥接文件主要是用来包含OC头文件的,主要用于Swift中使用OC 2.在Person.sw ...
- 学习练习 java 线程
package com.hanqi.xc; import java.util.*; public class lianxi extends Thread { public void run() { c ...
- CSS长度单位
罗列了CSS中常用的长度单位及比较 单位 含义 em 相对于父元素的字体大小 ex 相对于小写字母"x"的高度 rem 相对于根元素字体大小 px 相对于屏幕分辨率而不是视窗大小: ...
- projecteuler Sum square difference
The sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385 The square of ...
- 如何使VS2008 调试网站的根目录和IIS调试的一致?
用VS2008做asp.net网站调试时,经常会多出来一个目录,如http://localhost:1234/Foo/ , 由于一些图片的路径问题,我们不需要最后的/Foo/目录,而是像IIS调试那样 ...
- [视频]物联网应用-ARM mbed-来至MultiTech Systems的解决方案
ARM公司面向物联网及可穿戴市场,近期可谓是动作频频,先是发布了专为物联网及可穿戴领域而生的Cortex-M7架构,接着又发布了mbed物联网操作系统.意图在物联网领域构筑一套坚不可摧的生态系统. 这 ...