题意:是用两个指针的一个模拟时钟的时针和分针。两个指针形成一个角度。角度测量两个指针之间的最小角度。两只手之间的角度是大于或等于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. MVC定义路由

    标准路由配置 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Defa ...

  2. 新视野OJ 2705 [SDOI2012]Longge的问题 (数论)

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2705 题解:求 sigma(gcd(i,n), 1<=i<=n<2^32) ...

  3. POJ 1823 Hotel 线段树

    题目链接 线段树的区间合并. 和上一题差不多....第三种操作只需要输出maxx[1]的值就可以. #include <iostream> #include <vector> ...

  4. zoj 3792 Romantic Value

    题目链接 求最小割的值, 以及割边最少的情况的边数. 先求一遍最小割, 然后把所有割边的权值变为1, 其他边变成inf, 在求一遍最小割, 此时求出的就是最少边数. Inf打成inf  WA了好几发. ...

  5. js传参java接收乱码解决方案

    js传参处理 encodeURI(encodeURI(name)); java接收处理 URLDecoder.decode(request.getParameter("name") ...

  6. [LeetCode]题解(python):144-Binary Tree Preorder Traversal

    题目来源: https://leetcode.com/problems/binary-tree-preorder-traversal/ 题意分析: 前序遍历一棵树,递归的方法很简单.那么非递归的方法呢 ...

  7. MySQL 二进制日志过滤

    binlog_do_db; binlog_ignore_db; 这个两个参数是用来控制对哪个数据库的更改要记录日志:下面以binlog_ignore_db为例子. 假如binlog_ignore_db ...

  8. PCB成型製程介紹

    PCB成型製程在電子構裝中所扮演的角色 下圖是電腦主機的內部組成 我們將以插在主機板上的一片 USB擴充卡來說明PCB成型製 程在電子構裝中所扮演的角色 PCB成型製程的子製程 USB擴充卡要插入主機 ...

  9. [转贴]JavaScript中Array(数组)的属性和方法

    数组有四种定义的方式 使用构造函数:var a = new Array();var b = new Array(8); var c = new Array("first", &qu ...

  10. HDU 5877 Weak Pair(树状数组)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5877 [题目大意] 给出一棵带权有根树,询问有几对存在祖先关系的点对满足权值相乘小于等于k. [题 ...