题意:

时钟的三个指针在两两之间至少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);
} }

最新文章

  1. Apache Spark技术实战之6 -- spark-submit常见问题及其解决
  2. 【IIS8】在IIS8添加WCF服务支持
  3. HLSL之镜面反射光照
  4. SecureCRT的相关问题
  5. Flex 对Java端返回Collection的处理方法
  6. uva12230Crossing Rivers
  7. [转]关于ASP.NET(C#)程序中TEXTBOX下动态DIV跟随[AJAX应用]
  8. 再起航,我的学习笔记之JavaScript设计模式25(迭代器模式)
  9. spring mvc 之@requestmapping
  10. 使用JBolt新建Maven版工程步骤
  11. kubernetes学习笔记之十四:helm入门
  12. html-伪类
  13. 设置TabBar图片
  14. [PHP]PHP自定义遍历目录下所有文件的方法
  15. Pathwalks CodeForces - 960F(主席树 || 树状数组)
  16. libnids使用举例
  17. Swift3 获取系统音量和监听系统音量
  18. scrapy爬取天气数据
  19. 洛谷P2886牛继电器
  20. CSS深入理解absolute

热门文章

  1. BeagleBone Black Industrial系统更新设置一贴通
  2. lua 异常 错误处理 pcall
  3. ubuntu 16.04 更新后搜狗输入法无法输入中文的问题
  4. 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
  5. crm操作约会实体
  6. JAVA 保留两位小数
  7. linux 输入子系统(1) -Event types
  8. 使用Axis2开发WebService
  9. 从零开始徒手撸一个vue的toast弹窗组件
  10. MYSQL进阶学习笔记二:MySQL存储过程和局部变量!(视频序号:进阶_4-6)