排序是一种很频繁的计算任务。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候。在这个任务中可能的值只有三种1,2和3。我们用交换的方法把他排成升序的。

写一个程序计算出,计算出的一个包括1、2、3三种值的数字序列,排成升序所需的最少交换次数。

输入第1行为类别的数量N(1≤N≤1000)

输入第2行到第N+1行,每行包括一个数字(1或2或3)。

输出包含一行,为排成升序所需的最少交换次数。

样例输入

9
2
2
1
3
3
3
2
3
1

样例输出

4

#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std;
int n,i;
int a[1001],b[1001];
int x,y,z,sum=0;int main()
{while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++){cin>>a[i];b[i]=a[i];}sort(b,b+n);for(i=0;i<n;i++){if(a[i]!=b[i]){switch(b[i]){case 1:x++;break;case 2:if(a[i]==3)y++;break;case 3:if(a[i]==2)z++;break;}}}sum = x + (y>z ? y:z);cout<<sum<<endl;}return 0;
}
  • 思路来自:http://www.cnblogs.com/xiangguoguo/p/6804770.html

    对于排好序的1、2、3序列,看成一段1、一段2、一段3。对于每一段而言,数字是没有顺序之别的。那么再看做是编号分别为1、2、3的盒子。而盒子里的数字看做编号为1、2、3的球。一开始这些球无规则的放在3个盒子里,现在做的就是把球放在相应盒子里。分两步:1、把2、3盒子里的球重新放置,即2号盒子里的y个3号球给3号盒子,3号盒子里的z个2号球给2号盒子。交换次数为y、z的最大值。2、把1号盒子里的2号球和3号球(共x个)分别与2、3盒子里的1号球交换。

    一共:x+max(y,z)

计蒜客-三值排序(贪心)相关推荐

  1. 计蒜客 三值排序 (模拟)

    题目链接 题目描述 写一个程序计算出,计算出的一个包括1.2.3三种值的数字序列,排成升序所需的最少交换次数. 输入第1行为类别的数量N(1≤N≤1000) 输入第2行到第N+1行,每行包括一个数字( ...

  2. 计蒜客一月入门赛:《三个火枪手》题解

    题目链接(https://nanti.jisuanke.com/t/52314) 有 n 个人,其中有 m 对相互认识的关系. 一个人的知名度定义为 有多少人 和他相互认识. 现在蒜头君需要从这 n ...

  3. 生日排序 计蒜客 - T1715

    生日排序 计蒜客 - T1715 问题描述: 蒜头学院开学了,老师要统计班里每个人的生日,并按照出生日期从早到晚排序. 输入格式: 第一行一个整数 n (1≤n≤100),班级班级的人数. 接下来 n ...

  4. [计蒜客][贪心]节约用电

    题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛) 算法标签 贪心 题目描述 思路 事实上就是一维的线上从左到右标记所有M距离的点,相当于用距离为依据划分成N个等分,中间的数量就是答案的数量样例一: 3 ...

  5. JSK-27 三值排序【贪心】

    三值排序 排序是一种很频繁的计算任务.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候.在这个任务中可能的值只有三种1,2和3.我们用交换的方法把他排成升序的. 写一个程序计算出,计算出 ...

  6. [计蒜客 15504 百度的科学计算器(简单)]表达式求值

    [计蒜客 15504 百度的科学计算器(简单)]表达式求值 分类: Math 表达式求值 1. 题目链接 [计蒜客 15504 百度的科学计算器(简单)] 2. 题意描述 求一个只带加减的实数表达式. ...

  7. 计蒜客2020蓝桥杯大学A组模拟赛题解

    计蒜客2020蓝桥杯大学A组模拟赛题解 蓝桥杯的话,去年拿了C++组的国二.今年报名了新成立的Python组,不知道能不能摸到国一的鱼 模拟赛链接如下: https://www.jisuanke.co ...

  8. 计蒜客 2020 蓝桥杯大学 A 组省赛模拟赛 (一)题目及解析

    新手,欢迎交流,剩下D题不知如何下手,望大佬指教. 计蒜客 2020 蓝桥杯大学 B 组省赛模拟赛 (一)题目及解析 文章目录 A. 结果填空:计算周长 B. 结果填空:七巧板 C. 结果填空:苹果 ...

  9. 计蒜客 -- 常用STL题解

    1.计蒜客 – 打印锯齿矩阵 问题描述 锯齿矩阵是指每一行包含的元素个数不相同的矩阵,比如: 3 5 2 6 1 2 3 4 1 6 2 7 读入若干对整数 (x,y),表示在第 x 行的末尾加上一个 ...

  10. 计蒜客 2020 蓝桥杯大学 B 组省赛模拟赛 (一)题目及解析

    新手,欢迎交流,更新完毕. 计蒜客 2020 蓝桥杯大学 A 组省赛模拟赛 (一)题目及解析 文章目录 A. 结果填空:有趣的数字 B. 结果填空:爬楼梯 C. 结果填空:七巧板 D. 结果填空:苹果 ...

最新文章

  1. html表单c 后台如何接受,前台提交整个表单数据,后台实体类接收
  2. Android利用Volley异步加载(JSON和图片)完整示例
  3. 怎么分辨是不是外包工司_花2万做外装农村自建房秒变别墅,农村工头:这还让人怎么混?...
  4. 指纹识别 python_Python实现指纹识别你见过没?
  5. 京东回应拖欠神州 3 亿多元货款;苹果考虑将第三方浏览器和邮件设为默认;PS 诞生 30 周年| 极客头条...
  6. EVCache缓存在 Spring Boot中的实战
  7. 搭建和测试 Redis 主备和集群
  8. 删除android电视软件下载,智能电视Root并删除预装
  9. 头的各个部位示意图_人体头部结构图解剖图 人体头部结构及功能
  10. 渗透测试-SQL注入之宽字节注入
  11. OneNote for Win10 代码高亮
  12. 计算机开机时前按什么键,开机怎么进入bios?电脑开机按什么键进入BIOS方法大全...
  13. python实现文本审核_百度AI文本审核API使用说明
  14. java界面添加mid音乐,使用jfugue来演奏mid音乐
  15. 2019纪中寒假培训
  16. starUML教程-用例图/类图
  17. NTC电阻在电源输入端的应用-测试案例
  18. 清默网络——RIP单播更新
  19. tensorflow 常遇函数
  20. 星速配资:新能源获QFII机构青睐 隆基股份成第一重仓股

热门文章

  1. 维珍媒体确定收购Arqiva WiFi 将进一步扩大公共WiFi覆盖面积
  2. 移动分发端 基础统计指标经典业务代码节选--二次激活用户
  3. 轻松搞定RabbitMQ(四)——发布/订阅
  4. ASP.NET 2.0 Internet安全之参考实现
  5. C# 泛型2---排序
  6. lamda表达式对list各种处理
  7. jvm系列:Java服务GC参数调优案例
  8. Spring注解——同一接口有多个实现类,如何注入
  9. webpack手动搭建vue环境时,main.js引入一直报Uncaught SyntaxError: Unexpected identifier
  10. LOJ 2743(洛谷 4365) 「九省联考 2018」秘密袭击——整体DP+插值思想