题意:是用两个指针的一个模拟时钟的时针和分针。两个指针形成一个角度。角度测量两个指针之间的最小角度。两只手之间的角度是大于或等于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. SimpleXML 使用详细例子

    要处理XML 文件,有两种传统的处理思路:SAX 和DOM.SAX 基于事件触发机制, 对XML 文件进行一次扫描,完成要进行的处理:DOM 则将整个XML 文件构造为一棵DOM 树,通过对DOM 树 ...

  2. Nanjing GDG Meetup 10月19日线下活动

     Nanjing GDG 10 月份的线下活动将在本周六 (10/19) 举办,这次会请到对所有开发者都有重要帮助的神器 GoAgent 的作者 Phus Lu 来给我们做一场分享,热烈欢迎大家报名参 ...

  3. VirtualBox 中ubuntu访问window下共享目录

    1,vbox中设置window需要共享给vbox中ubuntu的文件夹,主要要注意共享文件夹名称windowShare. 2,在ubuntu中挂载windowShare. sudo mount -t ...

  4. 如何将mongodb bson文件转成json文件

    使用mongodb自带的命令 bsondump collection.bson > collection.json

  5. NodeJS 从0开始

    查看Node 基本配置$ npm config ls -l $npm help install将展开install的help文档 初始化目录 npm init 根据提示完成 将生成package.js ...

  6. MyBatis使用DEMO及cache的使用心得

    下面是一个简单的MyBatis使用DEMO. 整体结构 整体代码大致如下: POM依赖 需要引用两个jar包,一个是mybatis,另一个是mysql-connector-java,如果是maven工 ...

  7. U盘重装系统win7

    步骤: 1开机f12进入bios模式设置光盘的第一驱动 2U盘拷贝好的ghost镜像插入usb接口,重启默认U盘启动 3启动后进入重装系统界面,选择要重新的系统,进入pe系统,格式化c盘,后面默认自动

  8. UVA - 699The Falling Leaves(递归先序二叉树)

    The Falling Leaves Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Sub ...

  9. C++中搜索、截取字符串

    演示样例中有具体凝视,直接上代码: #include <iostream> #include <string> using std::cout; using std::endl ...

  10. 基于 dbms_redefinition 在线重定义表

    Oracle 支持在线重定义表,也就是说我们可以在修改表结构(DDL)的同时进行相关的DQL.DML操作,使得前端的DML根本感觉不到表结构实际上已经发生了变化,对于用户而言是完全透明的.当然在线重定 ...