Clock

题目描述

wls有一个钟表,当前钟表指向了某一个时间。
又有一些很重要的时刻,wls想要在钟表上复现这些时间(并不需要依次复现)。我们可以顺时针转动秒针,也可以逆时针转动秒针,分针和时针都会随着秒针按规则转动,wls想知道秒针至少转动多少角度可以使每个时刻至少都会被访问一次。
注意,时钟上的一种时针分针秒针的组合,可以代表两个不同的时间。

输入

第一行一个整数n代表有多少个时刻要访问。
第二行三个整数h,m,s分别代表当前时刻的时分秒。
最后n行每一行三个整数hi,mi,si代表每个要访问的时刻的时分秒。
1≤n≤86,400
0≤h,hi<24
0≤m,mi,s,si<60

输出

输出一行一个数代表秒钟转的角度,答案保留两位小数。

样例输入

1
0 1 0
0 1 1

样例输出

6.00

【题解】

  我把这个环复制了三个,把每一个时刻当作环上的每一个点,把环展开成三份。

  分三种情况:

  1、全往顺时针,或者全往逆时针。

  2、先往顺时针,再往逆时针。

  3、先往逆时针,再往顺时针。


 #include<bits/stdc++.h>
using namespace std;
const int N = 3e5+;
const int M = ;
int a[N],n;
int main()
{ //cout << -1 % 10 << endl ;
ios_base :: sync_with_stdio(false);
cin.tie(NULL) , cout.tie(NULL);
int h , mi , s ;
cin >> n ;
cin >> h >> mi >> s ;
int Start = h * + mi * + s ;
if( Start >= M ) Start -= M ;
int m = ; //cout << "####" << endl; for( int i = ,u,v,w ; i<n ; i++ ){
cin >> u >> v >> w ;
int tmp = (u * + v * + w) ;
if( tmp >= M ) tmp -= M ;
if( Start == tmp ) continue ;
else {
a[m++] = tmp ;
}
} sort( a , a + m ); for( int i = ; i < m ; i++ ){
a[i+m] = a[i] + ;
a[i+*m] = a[i] + ;
}
if( m == ){
//printf("####\n");
printf("0.00\n");
}else{
int L = m+ , R = m+ ;
Start += ;
//printf("###\n");
for( int i = ; i < * m ; i++ ){
if( a[i] < Start && Start < a[i+] ){
L = i , R = i + ;
break ;
}
}
//printf("( %d , %d ) , a[L] = %d , a[R] = %d \n",L,R,a[L],a[R]); //printf("%d , %d \n", L , R ) ;
int t1 = (Start-a[L]) >= M ? (Start-a[L]) - M : Start-a[L] ;
int t2 = (a[R]-Start) >= M ? (a[R]-Start) - M : a[R]-Start ;
//t1 = ( t1 + M ) % M ;
//t2 = ( t2 + M ) % M ;
//printf("%d\n",M);
//printf("%d %d\n",t1,t2) ;
//printf("%d %d\n",M - t1 , M - t2 );
int ans = min( (M - t1) , (M - t2) );
//printf("%d %d - %d = %d , %d - %d = %d \n",ans, Start , a[L] , (Start-a[L]) , a[R] , Start , (a[R]-Start) );
//printf("%d\n",ans);
for( int i = L ; L - m + < i ; i-- ){
ans = min( ans , (Start - a[i]) * + a[i+m-] - Start );
}
for( int i = R ; i < R + m - ; i++ ){
ans = min( ans , (a[i] - Start) * + Start - a[i-m+] );
}
ans = ans * ;
printf("%d.00\n",ans);
}
return ;
}

【模拟】Clock的更多相关文章

  1. 【算法笔记】B1026 程序运行时间

    1026 程序运行时间 (15 分) 要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗 ...

  2. 在Spring Boot中使用Docker在测试中进行高级功能测试

    最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想. 想更多地了解Spring Boot项目中的功能测试吗?这篇文章带你了解有关在测试中使用Docker容器的更多信息. 本文 ...

  3. 模拟 HDOJ 5387 Clock

    题目传送门 /* 模拟:这题没啥好说的,把指针转成角度处理就行了,有两个注意点:结果化简且在0~180内:小时13点以后和1以后是一样的(24小时) 模拟题伤不起!计算公式在代码内(格式:hh/120 ...

  4. UVALive - 6269 Digital Clock 模拟

    UVALive - 6269 Digital Clock 题意:时钟坏了,给你一段连续的时间,问你现在可能的时间是多少. 思路:直接模拟,他妈的居然这场就跪在了这题,卧槽,他妈的就在111行,居然多打 ...

  5. ZOJ 1122 Clock(模拟)

    Clock Time Limit: 2 Seconds      Memory Limit: 65536 KB You are given a standard 12-hour clock with ...

  6. HDU 5705 Clock(模拟,分类讨论)

    Clock Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submi ...

  7. HDOJ 5387 Clock 水+模拟

    Clock Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Subm ...

  8. HDU 5387 Clock (MUT#8 模拟)

    [题目链接]:pid=5387">click here~~ [题目大意]给定一个时间点.求时针和分针夹角,时针和秒针夹角,分针和秒针夹角 模拟题,注意细节 代码: #include&l ...

  9. UVALive 6269 Digital Clock --枚举,模拟

    题意:说不清楚,自己看吧,太恶心. 这题真是SB了,当时看了一下以为乱搞就好了,于是开始动手拍,结果拍了好几个小时都没拍出来,而且越想越想不通,直接把自己绕进去了,结果gg了. 总结:甭管什么题,想清 ...

随机推荐

  1. Java 从入门到进阶之路(十六)

    在之前的文章我们介绍了一下 Java 中类的多态,本章我们来看一下 Java 中类的内部类. 在 Java 中,内部类分为成员内部类和匿名内部类. 我们先来看一下成员内部类: 1.类中套类,外面的叫外 ...

  2. nginx配置静态资源与动态访问分离【转】

    在前面的博客中<说说 NGINX 的配置及优化>的 2.5 小节里面,提到 location 模块是 nginx 中用的最多的,也是最重要的模块,负载均衡.反向代理.虚拟域名等都与它相关. ...

  3. linux服务之dns

    安装dig工具 [root@cu-app-107 ~]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core) [root@cu-ap ...

  4. dig命令不能使用(-bash: dig: command not found)

    解决方式: 直接使用yum进行安装: yum -y install bind-utils

  5. python 抓取数据 存入 excel

    import requestsimport datetimefrom random import choicefrom time import timefrom openpyxl import loa ...

  6. 0.9.0.RELEASE版本的spring cloud alibaba nacos+gateway网关实例

    gateway就是用来替换zuul的,功能都差不多,我们看下它怎么来跟nacos一起玩.老套路,三板斧: 1.pom: <?xml version="1.0" encodin ...

  7. cJSON笔记

    github地址: https://github.com/DaveGamble/cJSON 需要将cJSON.h 和 cJSON.c拷贝到路径下,并且连接所需库文件 -lm 步骤:1.先将普通的jso ...

  8. properties配置文件参数获取

    package com.opslab.util; import org.apache.log4j.Logger; import java.io.File;import java.io.IOExcept ...

  9. python 调用java脚本的加密(没试过,先记录在此)

    http://lemfix.com/topics/344 前言 自动化测试应用越来越多了,尤其是接口自动化测试. 在接口测试数据传递方面,很多公司都会选择对请求数据进行加密处理. 而目前为主,大部分公 ...

  10. OHEM(online hard example mining)

    最早由RGB在论文<Training Region-based Object Detectors with Online Hard Example Mining>中提出,用于fast-rc ...