题意:是用两个指针的一个模拟时钟的时针和分针。两个指针形成一个角度。角度测量两个指针之间的最小角度。两只手之间的角度是大于或等于0,且小于或等于180度的度量。由于一个序列的五个不同的写入时间,格式为hh:mm,其中......是两个数字较完整的24小时( 00 <= ...... <= 23)和mm(00 <=毫米<= 59),你发现的中位数,也就是写一个程序,第三个元素的排序序列在两个数字代表分钟非递减顺序及其关联的角度。例如,假设您将得到一个序列(06:05,07:10,03:00,21:00,下午12:55)次。关系被打破这样一种方式,一个较早的时间排在稍后的时间之前。因为排序的序列(12:55,03:00,21:00,06:05,07:10),你输出的是21:00。

http://acm.hdu.edu.cn/showproblem.php?pid=1209

题解:排序;

错误分析:1:小时和分钟不一定是整10或5;

2:时针随着分针的变化而变化;所以时针与12的角度为angle=(hh+mm/60)*30;

3:输出格式可以用printf("%02d%02d",time[2].hh,time[2].mm);

上网搜了一个解题报告看到了这种数出格式,然后就试了一下,发现比我写的

if(time[2].hh<10)
printf("0%d",time[2].hh);
else
printf("%d",time[2].hh);
if(time[2].mm<10)
printf(":0%d\n",time[2].mm);
else
printf(":%d\n",time[2].mm);

好用多了,然后就百度一下解释:

2是宽度很简单。如果整数不够2列就补上0
比如
printf("%02d" ,3); 结果就是
03
如果大于2没有影响
printf("%02d",1234);
1234

代码实现

#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
typedef struct clock
{
int hh;
int mm;
double angle;
}clock;
clock time[6];
bool cmp( clock x1,clock x2 )//比较
{
if(x1.angle==x2.angle)
{
if(x1.hh==x2.hh)
return(x1.mm<x2.mm);
return (x1.hh<x2.hh);
} return x1.angle<x2.angle;
}
int main()
{
int t,h,m;
double angle1,angle2,angle3;
scanf("%d",&t);
while(t--)
{
for(int i=0;i<5;i++)
{
scanf("%d:%d",&h,&m);
time[i].hh=h;
time[i].mm=m;
angle1=30*(h%12)+m*0.5;//时针与0时的角度;
angle2=m*6;//分针与0分的角度
angle3=fabs(angle1-angle2);
if(angle3>180)angle3=360.0-angle3;
time[i].angle=angle3;
}
sort(time,time+5,cmp);//排序
printf("%02d:%02d\n",time[2].hh,time[2].mm);
} return 0;
}

排序的相关题目

HDU1029 Ignatius and the Princess IV

http://acm.hdu.edu.cn/showproblem.php?pid=1029

代码

#include<cstdio>
#include<algorithm>
#define MAX 1000000
using namespace std;
int a[MAX];
int main()
{
int i,n;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
int flag=a[0],count=0;
for(i=0;i<n;i++)
{
if(flag==a[i])
{
count++;
if((n+1)/2<=count)break;
}
else
{
flag=a[i];
count=1;
}
}
printf("%d\n",a[i]);
}
return 0;
}

HDU2673 shǎ崽 OrOrOrOrz

http://acm.hdu.edu.cn/showproblem.php?pid=2673

#include<cstdio>
#include<algorithm>
using namespace std;
int a[10005];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
printf("%d %d",a[n-1],a[0]);
for(int i=1;i<n/2;i++)
printf(" %d %d",a[n-i-1],a[i]);
if(n%2==1)
printf(" %d",n/2+1);
printf("\n"); }
return 0;
}

HDU1280 前m大的数

http://acm.hdu.edu.cn/showproblem.php?pid=1280

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
bool mysort(int x,int y)
{
return(x>y);
}
int b[45000000];
int main()
{
int i,j,k,n,m,a[3002];
while(scanf("%d %d",&n,&m)!=EOF)
{
k=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);//输入
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
b[k++]=a[i]+a[j];//两两相加的和
sort(b,b+n*(n-1)/2,mysort);//排序
printf("%d",b[0]);//控制输出格式
for(i=1;i<m;i++)
printf(" %d",b[i]);
printf("\n");
}
return 0;
}

HDU1029时钟(排序)的更多相关文章

  1. 一些 Mysql 维护命令

    ----------------------------------------------------------------------------使用mysql客户端程序------------ ...

  2. poj 3608(旋转卡壳求解两凸包之间的最短距离)

    Bridge Across Islands Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9768   Accepted: ...

  3. Lamport时间戳论文笔记

    本文主要参考文献[1]完成. 声明:本人仅在博客园发表了本文章,笔名LightningStar,其他网站均为转载. 笔记 私以为,论文中作者的核心工作是为分布式系统建立了一种数学模型,并基于这种数学模 ...

  4. 一种基于PTP 协议的局域网高精度时钟同步方法(转)

    原文地址 http://www.dzsc.com/data/html/2011-1-17/88338.html 1 引言 在分布式系统中, 常常需要一个全局时间, 用来确定系统中各种事件发生的先后.协 ...

  5. ARM Linux系统的时钟机制

    1. Linux下有两类时钟: 1.1 实时钟RTC 它由板上电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟.当操作系统关机的时候,用这个来记录时间,但是对于运行 ...

  6. 常用排序算法的python实现和性能分析

    常用排序算法的python实现和性能分析 一年一度的换工作高峰又到了,HR大概每天都塞几份简历过来,基本上一天安排两个面试的话,当天就只能加班干活了.趁着面试别人的机会,自己也把一些基础算法和一些面试 ...

  7. Linux CFS调度器之虚拟时钟vruntime与调度延迟--Linux进程的管理与调度(二十六)

    1 虚拟运行时间(今日内容提醒) 1.1 虚拟运行时间的引入 CFS为了实现公平,必须惩罚当前正在运行的进程,以使那些正在等待的进程下次被调度. 具体实现时,CFS通过每个进程的虚拟运行时间(vrun ...

  8. 【FZSZ2017暑假提高组Day2】圆盘时钟

    [问题描述] 作为出题人的小Z相信大家对上图这样的圆盘时钟都不会陌生——在理想圆盘时钟上,秒针每一分钟转一圈,分针每一小时转一圈,时针每12小时转一圈,它们均是匀速转动的,在0点时三条针均指向表盘上的 ...

  9. HDU 1029 Ignatius and the Princess IV / HYSBZ(BZOJ) 2456 mode(思维题,~~排序?~~)

    HDU 1029 Ignatius and the Princess IV (思维题,排序?) Description "OK, you are not too bad, em... But ...

随机推荐

  1. java——HashCode和equal方法

    equals()反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值. 而hashCode()是对象或变量通过哈希算法计算出的哈希值. 之所以有hashCode方 ...

  2. C# 控件包

    http://www.cnblogs.com/Keep-Silence-/archive/2013/01/22/2871694.html

  3. bzoj 2141 : 排队 分块

    题目链接 2141: 排队 Time Limit: 4 Sec  Memory Limit: 259 MBSubmit: 1169  Solved: 465[Submit][Status][Discu ...

  4. while 、do...while 、for

    1.while 特点:只有条件成立才会执行循环体. while陷阱: while(条件);即直接加分号 2.do while 特点:一定会执行一次循环体 3.for语句 l   初始化等可以是多句(把 ...

  5. MacOS copy图标shell脚本

    不会shell  同学做的... 可以看见在当前文件夹下创建了一个icons文件夹 最后还压缩了文件夹 #!/bin/bash # readPlist [plist] [key] function r ...

  6. python进阶1--数据库支持

    数据库支持 1.连接和游标 1)connect函数,该函数有多个参数,而具体使用那个参数取决于数据库.--连接数据库 常用参数: dsn:数据源名称 user:用户名 password:用户密码 ho ...

  7. rsyslog 直接读取日志,当日志截断后,不会继续发送

    rsyslog web机器上日志被截断,那么就不会发送到rsyslog服务器 因为imfile记录了offset,然后你直接>导致offset还没到

  8. java的访问控制(包、访问修饰符、修饰符)

    一.     java的类包 编写好一个源程序后,首先要执行javac命令进行编译源文件,并生成与源文件同名后缀为“.class”的字节码文件(类文件),该类文件与源文件默认在同一个目录中.该类文件是 ...

  9. o怎么样racle输入dmp数据库文件

    Oracle进出口数据imp/exp等价物oracle数据恢复和备份. exp命令可以从远程数据库传输数据server出到本地的dmp文件,imp命令能够把dmp文件从本地导入到远处的数据库serve ...

  10. CFileDialog 打开文件夹文件 保存文件夹文件

    格式说明: explicit CFileDialog(    BOOL bOpenFileDialog,                         //TRUE 为打开, FALSE 为保存 L ...