三值排序

排序是一种很频繁的计算任务。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候。在这个任务中可能的值只有三种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 <iostream>  
#include <cstdio>  
#include <algorithm>  
using namespace std;  
int main(){int n,a[1001];cin>>n;for(int i=0;i<n;++i){cin>>a[i]; }int sum1=0,sum2=0,sum3=0,sum=0;for(int i=0;i<n;++i){if(a[i]==1)sum1++;//一的个数if(a[i]==2)sum2++;//二的个数if(a[i]==3)sum3++;//三的个数}//最后一定是1(sum1个)2(sum2个)3(sum3个)int num1=0,num2=0,num=0;for(int j=sum1;j<n-sum3;++j){if(a[j]==3)num1++;//在第二部分是三的个数} for(int j=n-sum3;j<n;++j){if(a[j]==2)num2++;//第三部分是二的个数}num=max(num1,num2);//这样二和三之间的交换完毕,现在就剩下1和二三之间的交换了//在第一部分不是一的个数就是剩下的需要交换的次数for(int j=0;j<sum1;++j){if(a[j]!=1)sum++;//求出来第一部分不是一的个数}cout<<num+sum<<endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

imgaug批量椒盐噪声 python_python图像扩增-imgaug

# encodingutf-8import osimport imageioimport randomimport numpy as npimport imgaug as iaimport concurrent.futuresfrom imgaug import augmenters as iaaimport matplotlib.pyplot as pltfrom argparse import ArgumentParseria.seed(4)# %matplotlib inline# 参考 http…

express html文件接收路由参数,express 获取post 请求参数

在 Express 中没有内置获取表单 POST 请求体的 API , 我们需要添加第三方插件库安装:npm install --save body-parser配置:var bodyParser require(body-parser)//配置 body-parser 中间件 (插件, 专门用来解析表单 POST 请求)// parse application/x-www-form-urlencodedapp.…

深度优先搜索重要模板

深度优先搜索(Depth-First-Search) 从起点出发&#xff0c;走过的点要做标记&#xff0c;发现有没走过的点&#xff0c;就随意挑一个往前走&#xff0c;走不 了就回退&#xff0c;此种路径搜索策略就称为“深度优先搜索”&#xff0c;简称“深搜”。 其实称为“远度优先搜索”…

360浏览器查看html文件在哪里,360浏览器8菜单栏怎么弄出来?如何查看网站源代码...

今天想查看一个页面的源代码&#xff0c;没想到这个页面竟然禁止了鼠标右键功能&#xff0c;所以无法通过鼠标右键选择“查看源代码”来查看。然后就想通过 360 浏览器的“查看源代码”按钮进行查看&#xff0c;没想到找了半天都找不到这个按钮&#xff0c;最后只能通过查看源代…

tcp欢动窗口机制_TCP协议中的窗口机制------滑动窗口详解

一、窗口机制的分类在TCP协议当中窗口机制分为两种&#xff1a;1.固定的窗口大小2.滑动窗口二、固定窗口存在的问题如下图所示&#xff1a;我们假设这个固定窗口的大小为1&#xff0c;也就是每次只能发送一个数据&#xff0c;只有接收方对这个数据进行了确认后才能发送第二个数…

1-1.HTML、CSS、JavaScript语言在web前端开发中的作用

HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息&#xff0c;可以包含文字、图片、视频等。 CSS样式是表现。 就像网页的外衣。比如&#xff0c;标题字体、颜色变化&#xff0c;或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为…

判断html()中有长度,VBS 字符串长度判断的问题

对于给你一个字符串你应该怎样判断他的字符串长度&#xff0c;试举一些典型的例子C语言——字符串长度的计算方法提示&#xff1a;(1)计算字符串长度时关键是要注意辨认转义字符&#xff1b;(2)一个转义字符总是以反斜杠开始&#xff0c;再加一个其他字符组成。所以&#xff0c…

maxvalue mysql自动分区_创建mysql表分区的方法

创建mysql表分区的方法我来给大家介绍一下mysql表分区创建与使用吧&#xff0c;希望对各位同学会有所帮助。表分区的测试使用&#xff0c;主要内容来自于其他博客文章以及mysql5.1的参考手册。表分区是最近才知道的哦&#xff0c;以前自己做都是分表来实现上亿级别的数据了&…

html概述

什么是html&#xff1f; HTML&#xff08;Hyper Text Markup Language&#xff09;超文本标记语言。 标记语言就是让文本展示更丰富&#xff0c;更美观的一种语言。比如说文本加粗 更换颜色 斜体 html这种标记语言就是为了让网页展示更丰富&#xff0c;更美观的一种语言 开发…

计算机专业后悔么,王言匀

《中华独特疗法大成》分方法和治疗两篇。方法篇依据用药与否&#xff0c;分为药物疗法和非药物疗法两章&#xff0c;药物疗法按照给药途径分为内服法和外用法两节&#xff1b;非药物疗法根据施术手段分为针灸、推拿、气功及其他4节。这些章节介绍了273种治疗方法的基本内容、适…

python制作网页样式与布局_Python开发【第十二篇】:CSS装饰页面

CSS称为层叠样式表&#xff0c;是Cascading Style Sheets的缩写。CSS不仅可以静态地修饰网页&#xff0c;还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS引入方式&#xff1a;行内式&#xff1a;对标签元素添加style属性&#xff0c;在style属性中设置CSS样式&#…

html标签的用途

语义化。那么什么叫做语义化呢&#xff0c;说的通俗点就是&#xff1a;明白每个标签的用途&#xff08;在什么情况下使用此标签合理&#xff09; 比如&#xff0c;网页上的文章的标题就可以用标题标签&#xff0c;网页上的各个栏目的栏目名称也可以使用标题标签。文章中内容的…

应用计算机散热的原理是什么,水冷散热器是什么原理?水冷可以带给机箱多大的散热作用?...

用户若是CPU安装了水冷散热器&#xff0c;就可以利用水快速导热和散热的特性加强主机硬件的散热效果&#xff0c;和普通风扇的散热效果相比&#xff0c;水冷可以更加有效的降低硬件温度和热量散发速度。阅读下文了解水冷散热器的原理和作用。CPU水冷散热器是指使用液体在泵的带…

markdown改字体和背景颜色(html)

背景色是 1 背景色2 BlueViolet 背景色是orange 字体的设置我是黑体字 我是微软雅黑 我是华文彩云 color#0099ff size72 face”黑体” color#00ffff colorgray Size&#xff1a;规定文本的尺寸大小。可能的值&#xff1a;从 1 到 7 的数字。浏览器默认值是 3 <tabl…

计算机展望未来网络形态,在学习中展望未来

域。虚拟现实技术、模拟技术、流媒体以及网络技术使我们的教育达到了前所未有的地步。利用技术&#xff0c;我们可以把浩瀚的宇宙、微小的分子、原子世界展现在学生面前&#xff1b;利用技术&#xff0c;学生不用走出教室&#xff0c;就可以遨游五洲&#xff0c;跨越四海。我们…

批量画同心不同半径圆lisp_cad绘制同心圆lisp二次开发源代码

简介&#xff1a;本资源为autocad同心圆lisp二次开发源代码下载,该代码文件可以直接在autocad中加载,执行,可以实现的功能为绘制多个间距一定的同心圆源代码&#xff1a;(Defun C:TXY ()(SetQ cp (GetPoint "圆心&#xff1a;")cr (GetDist cp "基础半径&#x…

mvc html传参数乱码,SpringMVC Controller 接收页面传递的中文参数出现乱码

在Controller中接收到的POST参数如果是中文的话&#xff0c;显示为乱码。已知客户端传过来时编码为UTF-8。问题产生分析&#xff1a;spring MVC中默认的编码格式为“ISO-8859-1”,因此造成乱码。简单的解决方式&#xff1a;New String(request.getParameter(“xxx”).getBytes(…

lisp scheme 果壳_走出Lisp(Scheme)困境

从去年开始入坑Lisp&#xff0c;周周转转也算是基本入门了这一传说中的语言。Lisp确实是一门很开明的语法规范。lambda是基本定义形式&#xff0c;递归在其骨子深处&#xff0c;试图通过函数表达世界&#xff0c;的确这个世界是周而复始的&#xff0c;有些人愿意称为循环&#…

jenkins部署流程图_持续集成-jenkins(自动化部署流程图)

1、什么是持续集成持续集成&#xff1a;简称CI。持续集成的特点&#xff1a;自动完成、保证每个时间点上团队成员提交的代码是成功集成的、需求不明确或频繁变更的情景、帮助企业减少管理风险。持续集成的应用场景&#xff1a;持续集成(CI)系统组成部分&#xff1a;版本控制系统…

django 表单html5,我们如何在django管理表单中添加动态html5数据属性

你继承Django的ModelChoiceField并修改它的render_options()和render_option()方法来显示你所需要的对象的属性。我想你也需要你自己的ModelChoiceIterator的子类&#xff0c;这样它不仅可以吐出id/label元组&#xff0c;而且可以分离出你需要的所有数据。例我只是找到了一个自…