1720: 交换瓶子
1720: 交换瓶子
时间限制: 1 Sec 内存限制: 128 MB
[提交][状态][讨论版]
题目描述
有N个瓶子,编号 1 ~ N,放在架子上。
比如有5个瓶子:
2 1 3 5 4
要求每次拿起2个瓶子,交换它们的位置。
经过若干次后,使得瓶子的序号为:
1 2 3 4 5
对于这么简单的情况,显然,至少需要交换2次就可以复位。
如果瓶子更多呢?你可以通过编程来解决。
输入
第一行: 一个正整数N(N<10000), 表示瓶子的数目
第二行:N个正整数,用空格分开,表示瓶子目前的排列情况。
输出
输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。
样例输入
5
3 1 2 5 4
样例输出
3
//n比较大不应该直接用选择排序
AC_code:
#include <iostream>
using namespace std;
int a[1005],flag[1005];
int main()
{int n;cin>>n;for(int i = 1; i <= n; i++){cin>>a[i];}for(int i = 1; i <= n; i++)//记录a[i]值的位置 {flag[a[i]] = i;}int temp,ans = 0,pos;for(int i = 1; i <= n; i++){if(a[i] != i){//交换值 temp = a[i];a[i] = a[flag[i]];a[flag[i]] = temp;//更新位置 pos = flag[i];flag[temp] = pos;flag[i] = i; //等价于,int x = a[i]; //交换值 //a[i] ^= a[flag[i]] ^= a[i] ^= a[flag[i]]; //更新位置 //flag[i] ^= flag[x] ^= flag[i] ^= flag[x];ans++;}}cout<<ans<<endl;return 0;
}
1720: 交换瓶子相关推荐
- 交换瓶子(蓝桥杯入门)
交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的 ...
- java实现第七届蓝桥杯交换瓶子
交换瓶子 交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于 ...
- 交换瓶子(蓝桥杯真题)
交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的 ...
- 蓝桥杯-【交换瓶子】【2016年省赛B组题解】【C++】
2016年第七届蓝桥杯题目汇总 http://blog.csdn.net/qq_34202873/article/details/79646517 第九题: 交换瓶子 有N个瓶子,编号 1 ~ N,放 ...
- 蓝桥杯2016年C语言B组-交换瓶子
蓝桥杯2016年C语言B组 交换瓶子 代码 交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的 ...
- 蓝桥杯 交换瓶子 Java实现
交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的 ...
- 1224. 交换瓶子
1224. 交换瓶子 暴力解法: 题解 这种暴力解法长得很像选择排序. 选择排序是分为1 ~ i的有序区 i+1 ~ n的无序区.在无序区中找一个最小的,然后放入无序区的第一个位置. 这个题也是这样, ...
- 【Code Pratice】—— 猜字母、次数差、交换瓶子
文章目录 1 | 猜字母 题目 思路 逻辑代码 2 | 次数差 题目 思路 逻辑代码 3 | 交换瓶子 题目 思路 逻辑代码 1 | 猜字母 题目 把abcd-s共19个字母组成的序列重复拼接106次 ...
- c语言交换瓶子流程图,第七届蓝桥杯第9题:交换瓶子
交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的 ...
最新文章
- flipud--矩阵上下翻转
- 中国食用香精行业品牌策略与销售渠道分析报告2022-2028年
- ansile(3)playbook 使用说明
- tomcat下只有.class文件 没有java文件_解决tomcat发布工程后,WEB-INF/classes下文件不编译的问题...
- 别再问我如何双击打开.ipynb文件了!
- usb4-配置usb触摸屏
- Java并发编程高级篇(十):分离任务的执行和结果的处理
- The following module was built either with optimizations enabled or without debug information - winz
- linux创建指定大小的文件
- python中shutil模块_Python中shutil模块的学习笔记教程
- numpy+pandas+matplotlib绘制对数函数图形
- java中基本数据类型
- javascript offsetLeft,Left,clientLeft 各种浏览器位置相关属性
- Swift5.1 语言指南(十七) 反初始化
- 【挖坑系列】关于浏览器の缓存机制
- python提取国家名称缩写_如何从python中的国家缩写中获取国家名称,并混合使用alpha_2和alpha_3 ccodes...
- android开发环境搭建——android studio
- 为什么在计算机里打开U盘会闪退,U盘闪退怎么办?
- 【搬运及个人处理】联想电脑(Lenovo XiaoXinAir-14IIL 2020)散热模式Fn+Q 失效解决方案
- 单片机学习记录一:c8t6原理图
热门文章
- 戴尔电脑 linux ssh,使用SSH管理Dell iDRAC远程控制卡
- java类描述_java笔记2:Java语言中的类和对象的描述
- i5四核八线程怎么样_同样四核八线程,Ryzen 3 3100和3300X区别大了!
- iphone7参数_来自iPhone8用户的真实体验---这次我们不谈参数,只聊体验
- java有参和无参的用处_Java对比有参数和无参数
- 首先请与所有现有链接到该网络共享的映射断开连接_嘉兴快速路环线时代来了!这12张主城楼盘片区地图,请收好...
- 为什么我们程序员不把软件开发当回事?
- 三菱st编程手册_通过示例学习三菱ST编程(ALT指令和条件语句的使用)
- bat代码小游戏_程序员入职被27岁领导告诫:我被BAT录用过,是算法方面泰斗大哥...
- 05字符串的常用基本操作