【模拟】Clock
Clock
题目描述
又有一些很重要的时刻,wls想要在钟表上复现这些时间(并不需要依次复现)。我们可以顺时针转动秒针,也可以逆时针转动秒针,分针和时针都会随着秒针按规则转动,wls想知道秒针至少转动多少角度可以使每个时刻至少都会被访问一次。
注意,时钟上的一种时针分针秒针的组合,可以代表两个不同的时间。
输入
第二行三个整数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的更多相关文章
- 【算法笔记】B1026 程序运行时间
1026 程序运行时间 (15 分) 要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗 ...
- 在Spring Boot中使用Docker在测试中进行高级功能测试
最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想. 想更多地了解Spring Boot项目中的功能测试吗?这篇文章带你了解有关在测试中使用Docker容器的更多信息. 本文 ...
- 模拟 HDOJ 5387 Clock
题目传送门 /* 模拟:这题没啥好说的,把指针转成角度处理就行了,有两个注意点:结果化简且在0~180内:小时13点以后和1以后是一样的(24小时) 模拟题伤不起!计算公式在代码内(格式:hh/120 ...
- UVALive - 6269 Digital Clock 模拟
UVALive - 6269 Digital Clock 题意:时钟坏了,给你一段连续的时间,问你现在可能的时间是多少. 思路:直接模拟,他妈的居然这场就跪在了这题,卧槽,他妈的就在111行,居然多打 ...
- ZOJ 1122 Clock(模拟)
Clock Time Limit: 2 Seconds Memory Limit: 65536 KB You are given a standard 12-hour clock with ...
- HDU 5705 Clock(模拟,分类讨论)
Clock Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submi ...
- HDOJ 5387 Clock 水+模拟
Clock Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Subm ...
- HDU 5387 Clock (MUT#8 模拟)
[题目链接]:pid=5387">click here~~ [题目大意]给定一个时间点.求时针和分针夹角,时针和秒针夹角,分针和秒针夹角 模拟题,注意细节 代码: #include&l ...
- UVALive 6269 Digital Clock --枚举,模拟
题意:说不清楚,自己看吧,太恶心. 这题真是SB了,当时看了一下以为乱搞就好了,于是开始动手拍,结果拍了好几个小时都没拍出来,而且越想越想不通,直接把自己绕进去了,结果gg了. 总结:甭管什么题,想清 ...
随机推荐
- Java8中LocalDate的使用---项目中日期处理
// 获取当前日期 LocalDate now = LocalDate.now(); // 设置日期 LocalDate now2 = LocalDate.of(2099, 2, 28); // 解析 ...
- Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...
- SSH项目中使用struts-tags报错According to TLD or attribute directive in tag file, attribute test does not accept any expressions
在运行struts2标签页面时报错,代码如下:<%@ page language="java" pageEncoding="gbk"%><%@ ...
- arcpy arcgis python实例教程--原点夹角距离定义线(坐标正算)
arcpy arcgis python实例教程--原点夹角距离定义线(坐标正算) 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 此地理处理工具 ...
- 悟空CRM(基于jfinal+vue+ElementUI的前后端分离的开源CRM系统)
https://www.jfinal.com/share/1591 官网:http://www.5kcrm.com 官网:http://www.72crm.com 论坛:http://bbs.72cr ...
- [转]arcgis for server 10.2 下载及安装
转自:https://blog.csdn.net/nominior/article/details/80211963 https://blog.csdn.net/mrib/article/detail ...
- Flutter 目录结构介绍、入口、自定义 Widget、MaterialApp 组件、Scaffold 组件
Flutter 目录结构介绍 文件夹 作用 android android 平台相关代码 ios ios 平台相关代码 lib flutter 相关代码,我们主要编写的代 码就在这个文件夹 test ...
- Python写入csv文件示例
import csv header = ['City', 'AQI', 'PM2.5/1h', 'PM10/1h', 'CO/1h', 'NO2/1h', 'O3/1h', 'O3/8h', 'SO2 ...
- linux追加所有文件到新的文件(cat)
例子如下,存在test1.txt, test2.txt, test3.txt,现在准备把这三个文件的内容都追加到testall.txt 中 test1.txt 1 2 3 4 5 6 test2.tx ...
- 使用idea创建webservice客户端
new project: Generate Java Code From Wsdl: 导入junit.jar,编写测试类: