1182:合影效果

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 12645     通过数: 7214

【题目描述】

小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?

【输入】

第一行是人数n(2 <= n <= 40,且至少有1个男生和1个女生)。

后面紧跟n行,每行输入一个人的性别(男male或女female)和身高(浮点数,单位米),两个数据之间以空格分隔。

【输出】

n个浮点数,模拟站好队后,拍照者眼中从左到右每个人的身高。每个浮点数需保留到小数点后2位,相邻两个数之间用单个空格隔开。

【输入样例】

6
male 1.72
male 1.78
female 1.61
male 1.65
female 1.70
female 1.56

【输出样例】

1.65 1.72 1.78 1.70 1.61 1.56

【分析】

归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。

【参考代码】

#include <stdio.h>
#include <string.h>
#define N 50
double a[N],b[N],r[N];
void msort(int s,int t)  //归并排序 
{
    int i,j,mid,k;
    if(s==t)      //如果只有一个数字则返回,无需排序 
        return;
    mid=(s+t)/2;
    
    msort(s,mid);    //分解左序列 
    msort(mid+1,t);  //分解有序列 
    
    i=s;
    j=mid+1;
    k=s;
    
    while(i<=mid && j<=t)  //接下来合并 
    {
        if(a[i]<=a[j])
        {
            r[k]=a[i];
            k++;
            i++;
        }
        else
        {
            r[k]=a[j];
            k++;
            j++;
        }
    }
    while(i<=mid)  //复制左边子序列剩余 
    {
        r[k]=a[i];
        k++;
        i++;
    }
    while(j<=t)    //复制右边子序列剩余 
    {
        r[k]=a[j];
        k++;
        j++;
    }
    for(i=s;i<=t;i++)
        a[i]=r[i];
}
void cmpsort(int n) //比较排序 
{
    int i,j;
    double t;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(b[i]<b[j])
            {
                t=b[i];
                b[i]=b[j];
                b[j]=t;
            }
        }
    }
}
int main()
{
    int i,j=0,k=0,n;
    double x;
    char s[N];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf(" %s %lf",s,&x);
        if(strcmp(s,"male")==0)
            a[j++]=x;
        else
            b[k++]=x;
    }
    msort(0,j-1);
    cmpsort(k);
    for(i=0;i<j;i++)
        printf("%.2lf ",a[i]);
    for(i=0;i<k;i++)
        printf("%.2lf ",b[i]);
    
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=1182

信息学奥赛一本通(1182:合影效果)——归并排序相关推荐

  1. 信息学奥赛一本通1182 合影效果

    [题目描述] 小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念.如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问 ...

  2. 信息学奥赛一本通 1182:合影效果 | OpenJudge NOI 1.10 07:合影效果

    [题目链接] ybt 1182:合影效果 OpenJudge NOI 1.10 07:合影效果 [题目考点] 1. 排序 [君义精讲]排序算法 [解题思路] 解法1:将男生身高和女生身高分别排序 将男 ...

  3. 信息学奥赛一本通1182:合影效果

    时间限制: 1000 ms         内存限制: 65536 KB 提交数: 12967     通过数: 7422 [题目描述] 小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念.如果他们 ...

  4. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  5. 信息学奥赛一本通在线提交地址

    信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...

  6. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  7. 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划 第一节 动 ...

  8. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  9. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  10. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

最新文章

  1. 从头开始学习Adobe Photoshop CC图像编辑
  2. 某百度程序员中午面试一个阿里程序员,晚上去阿里面试,面试官竟是中午那个人!...
  3. html container显示边框,伪元素实现边框设置.html
  4. Java基础10:全面解读Java异常
  5. Delphi 中的 XMLDocument 类详解(5) - 获取元素内容
  6. Flume-NG + HDFS + HIVE 日志收集分析 | EyeLu技术Blog
  7. 从趣味游戏到排序算法(2)
  8. c语言:从标准输入读取几行输入,输入打印到标准输出上,加上行号
  9. idea 开源申请授权到期怎么办
  10. 油猴GM_download使用及下载扩展名flac,油猴脚本修改下载扩展名
  11. 微信小程序地图实现展示路线路
  12. windows下的gitbub使用入门
  13. OVM免费混合虚拟化系列教程之一:关于配置要求!
  14. 使用spire.doc for java为word添加页码、文字水印、书签(去除警告信息)
  15. 华为如何不关闭进程_关闭华为手机后台程序的小技巧,终于知道了,再也不用担心内存了...
  16. fw325r服务器无响应,迅捷fw325r显示已连接不可上网怎么办?
  17. 手机验证码登录,账号登录结合
  18. java实现word、pdf、excel文件下载功能
  19. 使用Nginx在云服务器上搭建图床
  20. (1)英文分词——波特词干提取算法

热门文章

  1. 报表服务扩展:基于WCF技术的报表服务扩展
  2. 中国最闷声发大财的城市,人均GDP超杭州
  3. 如何解决MySQL中的死锁问题?
  4. 分析一天1000万北京地铁客流,我们发现...
  5. el-table 行背景颜色_使用HTML添加表格4(行颜色与表格嵌套)——零基础自学网页制作
  6. Kafka 慌了!这个中间件,要火了?
  7. 「源码分析」CopyOnWriteArrayList 中的隐藏知识,你Get了吗?
  8. IntelliJ IDEA下的使用git
  9. centos netstat和ps感染木马解决方案
  10. 支付窗开发实战-张代浩-专题视频课程