hdoj【1006】【未完待续】
题意:
时钟的三个指针在两两之间至少D°的时候是开心的,求开心时间占一天的一个百分比。
思路:
我们看到这个百分比有三位小数,精度很高。
一天有24h,24*60min,24*60*60s,那么最小单位是秒。
换一种方法,考虑一天360*2度。但是可以看到,从秒到分到时间,这样转换到度来说,精度更高吧。
然后题目是要保证三个指针最少需要保证D°。
那么我们控制时针每个小时,使得分针最小,转动秒钟。从最小的临界条件,累加到最大的临界状态。那么考虑时间。应该也是最优精度吧。
①枚举每个小时,时针的角度=>最小分针的角度=>最小的秒钟角度,利用秒针枚举到最大的临界状态;枚举次数是24*60*60;
—————————–此时此歌:借过–印子月
后来开始打的时候发现这个D是实数,所以我们假设这个D是极端的D,小数点后6位,那么方法①貌似不行啊。所以还是到D度上来。
用角度,但是怎么枚举呢。总体的最小临界到最大临界是不变的,只是枚举方向换了。从被枚举对象秒针变成比单位度更小的单位。
然后可以看到一天的开始是0°0’0”到720°0’0”,那么就从最小的秒枚举开始,枚举次数是360*60*60,比刚刚的一天多拆分了15倍;
②:然后我直接想的就是从起点到终点中间判断一下就好了。
刚刚还卡机了。。。这个角度就是秒针的角度。
后来。。。其实把精度扩大的方法就是扩大角度的精度,我把一秒扩大1000倍,这样枚举。。。后来发现就是这样吧。。。我扩大360。。也就是枚举360*30*60*24次
—————————此时此歌:你的爱–王力宏
mdzz睡觉。神特么烦
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const double eps=1e-6;
const double pi=acos(-1.0);
const int mod=998244353;
const int INF=0x3f3f3f3f;
const int N=1e5+10;
double x[N],y[N];
int main()
{
int i,j;
int nn;
int xx;
double d;
double sum;
double hh,mm,ss;
double j1,j2,j3;
double i1,i2,i3;
nn=100*60*60*24;
while(~scanf("%lf",&d)){
if(d==-1) break;
xx=0;
for(i=0;i<=nn;i++){
sum=i*100;
hh=sum/3600;
mm=sum/60;
ss=sum;
hh=hh-hh/12*12;
mm=mm-mm/60*60;
ss=ss-ss/60*60;
j1=hh*30;
j2=mm*6;
j3=ss*6;
i1=min(fabs(j1-j2),360-fabs(j1-j2));
i2=min(fabs(j1-j3),360-fabs(j1-j3));
i3=min(fabs(j2-j3),360-fabs(j2-j3));
if(i1-d<=eps)
continue;
if(i2-d<=eps)
continue;
if(i3-d<=eps)
continue;
xx++;
}
printf("%.3lf\n",(double)xx/(double)nn*100);
}
}
hdoj【1006】【未完待续】的更多相关文章
- javascript有用小功能总结(未完待续)
1)javascript让页面标题滚动效果 代码如下: <title>您好,欢迎访问我的博客</title> <script type="text/javasc ...
- ASP.NET MVC 系列随笔汇总[未完待续……]
ASP.NET MVC 系列随笔汇总[未完待续……] 为了方便大家浏览所以整理一下,有的系列篇幅中不是很全面以后会慢慢的补全的. 学前篇之: ASP.NET MVC学前篇之扩展方法.链式编程 ASP. ...
- 关于DOM的一些总结(未完待续......)
DOM 实例1:购物车实例(数量,小计和总计的变化) 这里主要是如何获取页面元素的节点: document.getElementById("...") cocument.query ...
- 我的SQL总结---未完待续
我的SQL总结---未完待续 版权声明:本文为博主原创文章,未经博主允许不得转载. 总结: 主要的SQL 语句: 数据操作(select, insert, delete, update) 访问控制(g ...
- virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续)
virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续) 第一次接触到 linux,不知道linux的确很强大,然后用virtualbox ...
- MVC丶 (未完待续······)
希望你看了此小随 可以实现自己的MVC框架 也祝所有的程序员身体健康一切安好 ...
- 一篇文章让Oracle程序猿学会MySql【未完待续】
一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方 ...
- [python]爬代理ip v2.0(未完待续)
爬代理ip 所有的代码都放到了我的github上面, HTTP代理常识 HTTP代理按匿名度可分为透明代理.匿名代理和高度匿名代理. 特别感谢:勤奋的小孩 在评论中指出我文章中的错误. REMOTE_ ...
- IOS之KVC和KVO(未完待续)
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- C++语言体系设计哲学的一些随想(未完待续)
对于静态类型语言,其本质目标在于恰当地操作数据,得到期望的值.具体而言,需要: (1)定义数据类型 你定义的数据是什么,是整形还是浮点还是字符.该类型的数据可以包含的值的范围是什么. (2)定义操作的 ...
随机推荐
- Android兼容性测试CTS
一.简介 为了确保Android应用能够在所有兼容Android的设备上正确运行,并且保持相似的用户体验,在每个版本发布之时,Android提供了一套兼容性测试用例集合(Compatibility ...
- Android图表AChartEngine
很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果.基本有以下几种方法: 1:可以进行android api进行draw这样的话,效率比较低 2:使用开源绘表引擎,这样效率比较 ...
- MySQL优化之——触发器
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46763665 触发器是一个特殊的存储过程,不同的是存储过程要用CALL来调用,而触 ...
- sanic官方文档解析之Exception和Middleware,Listeners
1,异常 异常是从处理请求内部抛出来的,并且通过Sanic自动的被处理异常,,异常用第一个参数携带异常信息,还可以接受在HTTP响应中要传递回的状态代码.引发异常 1.1引发异常 自动触发异常,,简单 ...
- configuration类详解
hadoop中,组件配置是由Hadoop的Configuration的一个实例实现.(在源码包的org.apache.hadoop.conf中可以找到)先上个类图:这只是部分的,Configuraat ...
- spring cloud 配置纲要Properties
名称 默认 描述 encrypt.fail-on-error true 标记说,如果存在加密或解密错误,进程将失败. encrypt.key 对称密钥.作为一个更强大的替代方案,考虑使用密钥库. ...
- Hadoop MapReduce基本原理
一.什么是: MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都 ...
- gitbash使用
gitbash是什么 git bash是Windows下的命令行工具. 基于msys GNU环境,有git分布式版本控制工具. 主要用于git版本控制,上传下载项目代码. GNU环境,就是说如果你喜欢 ...
- ComboBox联动 (AJAX BS实现)
//从webservice中取数据ajax Ext.Ajax.request({ url: 'WebService.asmx/GetComboxFi ...
- 一步一步学Silverlight 2系列(14):数据与通信之WCF
一步一步学Silverlight 2系列(14):数据与通信之WCF 概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框 ...