P1459 三值的排序 Sorting a Three-Valued
题目描述
排序是一种很频繁的计算任务。现在考虑最多只有三值的排序问题。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候。在这个任务中可能的值只有三种1,2和3。我们用交换的方法把他排成升序的。
写一个程序计算出,给定的一个1,2,3组成的数字序列,排成升序所需的最少交换次数
输入输出格式
输入格式:
第一行:
奖牌个数N (1 <= N <= 1000)
第 2行到第N+1行:
每行一个数字,表示奖牌。共N行。(1…3)
输出格式:
共一行,一个数字。表示排成升序所需的最少交换次数。
输入输出样例
输入样例#1:
9
2
2
1
3
3
3
2
3
1
输出样例#1:
4
说明
USACO 2.1
翻译来自NOCOW
先讨论一次交换还两个的比如正确的摆放位置为123,现在为321,交换一次,就是先讨论在彼此区域的值,在讨论一次交换不能的出来,两次交换才能换出三个值。
#include <cstdio>
#include <iostream>
using namespace std;
int num[1001], count[4], a[4], n, k = 1;
int main() {scanf("%d", &n);for (int i = 1; i <= n; i++, k++) {scanf("%d", &num[k]);count[num[k]]++; }for (int i = 1; i <= count[1] + count[2]; i++) {if (num[i] == 3) {a[3]++;}else if (num[i] == 2 && i <= count[1]) {a[1]++;}else if (num[i] == 1 && i > count[1]) {a[2]++;}}printf("%d\n", a[3] + (a[1] > a[2] ? a[1] : a[2]));return 0;
}
P1459 三值的排序 Sorting a Three-Valued相关推荐
- [P1459 [USACO2.1]三值的排序 Sorting a Three-Valued Sequence]
P1459 [USACO2.1]三值的排序 Sorting a Three-Valued Sequence 解题思路:贪心.对b数组排序,先找如果交换一次就可以让两组都相等的交换一下,再找交换一次,可 ...
- 三值的排序 Sorting a Three-Valued Sequence(洛谷 P1459)
三值的排序 Sorting a Three-Valued Sequence 题目描述 排序是一种很频繁的计算任务.现在考虑最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排 ...
- luogu p1459 三值的排序
题目描述 排序是一种很频繁的计算任务.现在考虑最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候.在这个任务中可能的值只有三种1,2和3.我们用交换的方法把他排成升 ...
- 三值的排序 Sorting a Three-Valued Sequence
题目描述 排序是一种很频繁的计算任务.现在考虑最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候.在这个任务中可能的值只有三种1,2和3.我们用交换的方法把他排成升 ...
- Sorting a Three-Valued Sequence 三值的排序
Sorting a Three-Valued Sequence 三值的排序 Time Limit: 1 Sec Memory Limit: 64 MB Description 排序是一种很频繁的计算 ...
- [USACO2.1] 三值的排序 乱搞
传送门:嘿原题在这 用一个num[][]数组记录应该在i位置的j有多少个,然后每次发现i在j中,j在i中的情况这种两个数的位置调换的情况,只需交换一次(min(num[i][j],num[j][i]) ...
- usaco Sorting a Three-Valued Sequence 三值的排序
一开始想贪心,但是一想这是搜索章节应该用bfs?(为什么这么想看我上一个usaco的题目),,,,,,,,,,结果我贪心做出来了.然后我百度一下了别人做的好像么没人用bfs我不知道可不可以做出来. 思 ...
- JSK-27 三值排序【贪心】
三值排序 排序是一种很频繁的计算任务.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候.在这个任务中可能的值只有三种1,2和3.我们用交换的方法把他排成升序的. 写一个程序计算出,计算出 ...
- 2017-2018-1 20162316刘诚昊 实验三 查找与排序
20162316刘诚昊 2017-2018-2 <Java程序设计>第三次实验 查找与排序 实验链接: 实验三 查找与排序-1 实验二 查找与排序-2 实验二 查找与排序-3 实验二 查找 ...
最新文章
- Redis进阶实践之二如何在Linux系统上安装安装Redis
- 面向组合子程序设计方法 之 新约
- dataframe 众数的方法_数据分析师最常用的数据分析方法。你都掌握了吗?
- [Head First Java] - 给线程命名
- 运行Jenkins部署任务
- java工程怎么构造成moven_将普通java工程结构改为由maven管理的工程结构域
- RHEL5 怎么装vim
- 算子,滤波器,卷积模板,卷积核的概念比较
- 二级Visual Basic语言视频教程
- 2016全球排名前50的博客网站性能
- Java——因式分解算法
- Kali忘记密码的重置方法
- 巴菲特:推荐给投资者的9本书(附下载链接)
- 云服务商将占据 80% CDN 市场份额,传统CDN或将终结
- SECURITY WARNING TLS certificate verification has been disabled!
- “数字资产”这个词可能是误导 | 正本清源谈区块链
- 渗透测试国内外研究_浅析晶硅光伏背板阻隔性能测试(一)——水蒸气透过率测试...
- camunda modeler 汉化方法
- nodejs 读取本地文件
- 阿里云盘开启“个人云种子用户“报名