2017-8-7

题目描述

给定的一个1,2,3组成的数字序列,排成升序所需的最少交换次数

解答

将结果与所给情况进行比较,相等不用处理,对应相反直接交换即可,否则进行处理

代码

/*
ID: 18795871
PROG: sort3
LANG: C++
*/
#include<iostream>
#include<cstring>
#include<fstream>
using namespace std;
const int N = 1000;ifstream fin("sort3.in");
ofstream fout("sort3.out");int x[N+1],y[N+1];
bool f[N+1];
int cnt=0,n,x1,x2,x3;void init(){int i;for (i=1;i<=x1;i++) y[i]=1;for (i=x1+1;i<=x1+x2;i++) y[i]=2;for (i=x1+x2+1;i<=x1+x2+x3;i++) y[i]=3;
}void cal(){int i,j;int ss=0;for (i=1;i<=n;i++){if (x[i]==y[i]) f[i]=true;}for (i=1;i<=n;i++){if (!f[i]){for (j=i+1;j<=n;j++){if (!f[j]&&x[i]==y[j]&&x[j]==y[i]){ //对应相反直接交换 cnt++;f[i]=true;f[j]=true;break;}}}}int s=0;for (i=1;i<=n;i++){if (!f[i]) s++;}if (s!=0) fout<<s/3*2+cnt<<endl;else fout<<cnt<<endl;
}int main()
{fin>>n;x1=0,x2=0,x3=0;for (int i=1;i<=n;i++){fin>>x[i];if (x[i]==1) x1++;else if (x[i]==2) x2++;else x3++;}init();cal();return 0;
}

USACO-Section2.1 Sorting a Three-Valued Sequence(排序)相关推荐

  1. USACO Section2.1 Hamming Codes 解题报告 【icedream61】

    hamming解题报告 ---------------------------------------------------------------------------------------- ...

  2. USACO Section2.2 Preface Numbering 解题报告 【icedream61】

    preface解题报告 ---------------------------------------------------------------------------------------- ...

  3. USACO section2.4 Cow Tours题解代码

    把max()和min()用反了过了6组也是挺醉的,USACO数据也会这么水23333 一道写起来有点麻烦的题目,并查集+floyd就可以了- /* ID:rainbow16 LANG:C++ TASK ...

  4. POJ 1094 Sorting It All Out (拓扑排序)

    题意:给你一些大写字母间的偏序关系,然后让你判断能否唯一确定它们之间的关系,或者所给关系是矛盾的,或者到最后也不能确定它们之间的关系.   由DAG图节点的偏序关系确定节点的排序可以由拓扑排序求出.而 ...

  5. PAT甲级1052 Linked List Sorting:[C++题解]链表排序

    文章目录 题目分析 题目链接 题目分析 题意:给定数据(里面有不构成链表的数据,若是,则跳过),是链表的构成链表.然后根据数值大小重新排序,构成新的链表. 分析:用数组模拟链表,先建立链表.遍历链表, ...

  6. Sorting It All Out 拓扑排序+确定点

    这一道题的话  数据有一点问题    ........     例如 不过 还是   能理解一下  试试吧  ......... 3 5 A<B B<C C<A A<C B&l ...

  7. POJ - 1094 Sorting It All Out(拓扑排序+floyd传递闭包)

    题目链接:点击查看 题目大意:给出N个点以及M个比较关系,问在第几个数字可以确定出唯一的序列,或者判断出矛盾的序列,或者最后也无法确定出一个唯一的序列 题目分析:关于这个题目可以直接分类讨论,可以直接 ...

  8. nyoj349 poj1094 Sorting It All Out(拓扑排序)

    nyoj349   http://acm.nyist.net/JudgeOnline/problem.php?pid=349 poj1094   http://poj.org/problem?id=1 ...

  9. 排序算法——选择排序法(Select Sorting)

    选择排序(Select Sorting) 基本介绍 ​ 选择排序也属于内部排序法,是从预排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的 选择排序思想 ​ 选择排序(Selec ...

  10. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

最新文章

  1. TFRecord tf.train.Feature
  2. c语言知道算法写不出代码,这个代码怎么写算法啊,求教,我真的不会写算法怎么办#incl...
  3. “硅谷之父”传奇:拯救斯坦福大学、培养大批高科技人才、指导创立惠普
  4. mysql画事实表_sql生成事实表数据库
  5. 选哪扇门得奖金的算法
  6. ?为什么要学这个技术(有什么优秀的地方,可以解决哪些问题?
  7. PHP开发电脑网站支付宝支付详细流程(沙箱测试篇)
  8. 报错 插入更新_自增主键,三类插入测验答案,在这里。
  9. 51nod 1011 最大公约数GCD
  10. awr报告分析 mysql_4个MySQL优化工具,帮你准确定位数据库瓶颈!
  11. 【渝粤题库】国家开放大学2021春1044合同法题目
  12. live555的安装 RTSP点播消息流程实例(客户端:VLC, RTSP服务器:LIVE555 Media Server)
  13. 使用ETags减少Web应用带宽和负载
  14. 机器学习基础(三十一)—— 岭回归(Ridge Regression)到 LASSO
  15. cocos2d-x使用python创建vs模板
  16. 计算机视觉方向大创题目,关于开展2020年大创项目学生选题或自拟题目申报工作的通知...
  17. 使用键盘设置桌面计算机图标的显示不出来,显示桌面,小编教你显示桌面图标不见了如何恢复...
  18. python md5解密方法与技巧_python ---- 爬取 md5解密结果 的小脚本
  19. Arduino入门(一)
  20. Android实现横幅通知

热门文章

  1. centos python_在centos上配置python的虚拟开发环境
  2. The Innovation | 中国开启肿瘤CAR-T治疗新时代
  3. 画个火山图,标记下基因的名字
  4. ubuntu下gvim启动出现gtk warning Invalid input string
  5. 人工智能 量子力学 时间简史 山海经 三体
  6. 《小学生C++趣味编程》 第23课 打车费用
  7. 简述python的安装过程_python3+ selenium3开发环境搭建-手把手教你安装python(详细)...
  8. java程序优化快捷键_Java 代码中针对性能优化的总结方案
  9. spring 数组中随机取几个_准备几个月,面试阿里耗时两周,最终凭借这些知识拿下阿里offer...
  10. NiceScroll文档阅读笔记-NiceScroll(3.7.6)基本使用