hdu_1006 Tick and Tick(暴力模拟)
hdu1006
标签(空格分隔): 暴力枚举
好久没有打题了,退队了有好几个月了,从心底不依赖那个人了,原来以为的爱情戏原来都只是我的独角戏。之前的我有时候好希望有个人出现,告诉自己去哪里,做什么,哪种仅仅是渴望被爱的感觉都很美好,大概是因为离开了acm也不再依赖他所以现在我自己告诉自己,自己要去哪里,做什么,突然感觉很踏实,也不那么累了。现在我想把之前没有做好的做好,虽然我已经失去了最好的时机,但还是要在最忙的时间里抽出来做一些曾经有所遗憾的事情。
不多说了,上题!
开始推了半天公式,发现这个题要暴力模拟
其实是很简单的,要踏踏实实地反复去读条件,想清楚指针转动的情况就很简单了
/* 秒针的速度s=6°/s,分针是m=1/10°/s,时针是h=1/120°/s;
相对速度s_m=59/10°/s,s_h=719/120°/s,m_h=120/11°/s;
所以相差一度所需要的时间sm=10/59 s/°,sh=120/719 s/°,mh=120/11 s/°;
差360°的周期为cycle_sm=3600/59 s,cycle_sh=43200/719 s,cycle_mh=43200/11 s;
假设开始时从12点整开始,旋转至再均回到12点(即时针转一圈)
*/
double max(double a,double b,double c){
return a>b?(a>c?a:c):(b>c?b:c);}
double min(double a,double b,double c){
return a<b?(a<c?a:c):(b<c?b:c);}
#include <stdio.h>
int main()
{
double d;
double cycle_sm=3600./59.;
double cycle_sh=43200./719.;
double cycle_mh=43200./11.;//这三行是时针、分针、秒针两两相遇的周期
double sum;
double happys,happye;//开始happy和结束happy的时刻
double sm=10./59.,sh=120./719.,mh=120./11.;//相差一度所需要的时间
double d_sm,d_sh,d_mh,not_d_sm,not_d_sh,not_d_mh;//表示相差d°及以上的时刻和不再相差d°及以上的时刻
while(scanf("%lf",&d)!=EOF&&d!=-1)
{
sum=0;
d_sm=sm*d; not_d_sm=cycle_sm-d_sm;
d_sh=sh*d; not_d_sh=cycle_sh-d_sh;
d_mh=mh*d; not_d_mh=cycle_mh-d_mh;
happys=max(d_sm,d_sh,d_mh);
happye=min(not_d_sm,not_d_sh,not_d_mh);
while(happys<=43200&&happye<=43200)//43200是时针针转一圈的秒数
{
happys=max(d_sm,d_sh,d_mh);//两两之间最后一个满足相差d°及以上的条件视为开始happy时刻
happye=min(not_d_sm,not_d_sh,not_d_mh);//两两之间第一个不再满足相差d°及以上视为结束happy的时刻
if(happys<happye)
sum+=happye-happys;//如果end的时间比start的晚,由sum记录并累积
if(happye==not_d_sm)
{d_sm+=cycle_sm;not_d_sm+=cycle_sm;}
else if(happye==not_d_sh)
{d_sh+=cycle_sh;not_d_sh+=cycle_sh;}
else if(happye==not_d_mh)
{d_mh+=cycle_mh;not_d_mh+=cycle_mh;}//happy时间end后最慢的指针要提前一个周期才能让比它快的再次追上
}
printf("%.3lf\n",sum/43200*100);
}
return 0;
}
‘
hdu_1006 Tick and Tick(暴力模拟)的更多相关文章
- hdu 1006 Tick and Tick 有技巧的暴力
Tick and Tick Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- HDU 1006 Tick and Tick 时钟指针问题
Tick and Tick Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- bnuoj 20832 Calculating Yuan Fen(暴力模拟)
http://www.bnuoj.com/bnuoj/problem_show.php?pid=20832 [题意]: 给你一串字符串,求一个ST(0<ST<=10000),对字符串中字符 ...
- POJ 1013 小水题 暴力模拟
Counterfeit Dollar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 35774 Accepted: 11 ...
- hdu1006 Tick and Tick
原题链接 Tick and Tick 题意 计算时针.分针.秒针24小时之内三个指针之间相差大于等于n度一天内所占百分比. 思路 每隔12小时时针.分针.秒针全部指向0,那么只需要计算12小时内的百分 ...
- HDU 1006 Tick and Tick(时钟,分钟,秒钟角度问题)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1006 Tick and Tick Time Limit: 2000/1000 MS (Java/Oth ...
- hihoCoder #1871 : Heshen's Account Book-字符串暴力模拟 自闭(getline()函数) (ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction B) 2018 ICPC 北京区域赛现场赛B
P2 : Heshen's Account Book Time Limit:1000ms Case Time Limit:1000ms Memory Limit:512MB Description H ...
- 美团2018年CodeM大赛-资格赛 分数 暴力模拟
链接:https://www.nowcoder.com/acm/contest/138/D来源:牛客网 小胖参加了人生中最重要的比赛——MedoC资格赛.MedoC的资格赛由m轮构成,使用常见的“加权 ...
- hdu 1006 Tick and Tick
Tick and Tick Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
随机推荐
- iOS 友盟推送,应用内推送启动图推送闪动黑屏,插屏推送方法报错
以前都是用的极光推送,应公司需求要求使用友盟推送,为了以后是有分享都适用,,, 友盟推送文档,下载demo 感觉比极光用着要简单顺手 一切就绪后,开始发送消息测试,,,,,搞了半天没有发过来消息 原来 ...
- [数据结构]C语言链表实现
我学数据结构的时候也是感觉很困难,当我学完后我发现了之所以困难时因为我没有系统的进行学习,而且很多教授都只是注重数据结构思想,而忽略了代码方面,为此我写了这些博文给那些试图自学数据结构的朋友,希望你们 ...
- C++11新语法糖之尾置返回类型
C++11的尾置返回类型初衷是为了方便复杂函数的声明和定义,但是当复杂度稍微提升一些的时候很明显能注意到这种设计的作用微乎其微. 首先考虑如下代码: C++ //返回指向数组的指针 auto func ...
- treeview插件使用:根据子节点选中父节点
鄙人公司没有专门的前端,所以项目开发中都是前后端一起抡.最近用bootstrap用的比较频繁,发现bootstrap除了框架本身的样式组件外,还提供了多种插件供开发者选择.本篇博文讲的就是bootst ...
- 工厂方法模式(Method Factory),理解多态应用的好例子.
工厂方法模式又称为多态性工厂,个人认为多态性工厂更能准确的表达这个模式的用处.与简单工厂(静态工厂)相比较,这里的多态性是指抽象出一个工厂基类,将因为一个产品有N种不同的是现这种变化封装起来,将具体的 ...
- 理解new构造函数和apply以及call
今天在看设计模式的时候,遇到一些挺低级的东西,搞不懂,顾查阅资料整理记录一番. 先了解一下new构造函数的过程: function func(){ console.log('do'); } var f ...
- Spring 自动装配及自动注册的相关配置
Spring支持好几种自动装配(Autowiring)的方式,以及自动扫描并注册Bean的配置(在beans.xml中配置). 下文我们进行一个小结. 1. <context: annotati ...
- 顶点/片元 shader 总结
Cg顶点程序必须在结构中传递顶点数据.几种常用的顶点结构定义在文件UnityCG.cginc中,有如下三种结构体: 1.appdata_base: 包含顶点位置,法线和一个纹理坐标.2.appdata ...
- ABP .Net Core 日志组件集成使用NLog
一.说明 NLog介绍和使用说明官网:http://nlog-project.org/ NLog和Log4net对比:https://www.cnblogs.com/qinjin/p/5134982. ...
- @Autowired内部实现原理
@Autowiredprivate CustomerDao customerDao; public void addCustomer() { customerDao.add ...