蓝桥杯 2016 B组第九题 交换瓶子
来源:互联网 发布:centos 配置hadoop 编辑:程序博客网 时间:2024/06/05 01:59
<span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 1.5; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">有N个瓶子,编号 1 ~ N,放在架子上。</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">比如有5个瓶子:</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">2 1 3 5 4</span><br style="color: rgb(51, 51, 51); font-family: 微软雅黑; font-size: 14px; line-height: 21px; background-color: inherit;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">要求每次拿起2个瓶子,交换它们的位置。</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">经过若干次后,使得瓶子的序号为:</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">1 2 3 4 5</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">对于这么简单的情况,显然,至少需要交换2次就可以复位。</span><br style="color: rgb(51, 51, 51); font-family: 微软雅黑; font-size: 14px; line-height: 21px; background-color: inherit;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">如果瓶子更多呢?你可以通过编程来解决。</span><br style="color: rgb(51, 51, 51); font-family: 微软雅黑; font-size: 14px; line-height: 21px; background-color: inherit;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">输入格式为两行:</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">第一行: 一个正整数N(N<10000), 表示瓶子的数目</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">第二行:N个正整数,用空格分开,表示瓶子目前的排列情况。</span><br style="color: rgb(51, 51, 51); font-family: 微软雅黑; font-size: 14px; line-height: 21px; background-color: inherit;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。</span><br style="color: rgb(51, 51, 51); font-family: 微软雅黑; font-size: 14px; line-height: 21px; background-color: inherit;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">例如,输入:</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">5</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">3 1 2 5 4</span><br style="color: rgb(51, 51, 51); font-family: 微软雅黑; font-size: 14px; line-height: 21px; background-color: inherit;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">程序应该输出:</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">3</span><br style="color: rgb(51, 51, 51); font-family: 微软雅黑; font-size: 14px; line-height: 21px; background-color: inherit;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">再例如,输入:</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">5</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">5 4 3 2 1</span><br style="color: rgb(51, 51, 51); font-family: 微软雅黑; font-size: 14px; line-height: 21px; background-color: inherit;" /><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">程序应该输出:</span><br style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;" /><p><span style="color: rgb(51, 51, 51); font-size: 14px; line-height: 21px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">2</span></p>
</pre><pre name="code" class="cpp">
#include<iostream>using namespace std;void swap(int a,int b,int *data)//交换坐标 a b{int temp = data[a];data[a] = data[b];data[b] = temp;}void slove(int *data,int N){int cnt = 0;for (int i = 1; i <= N; ++i){while (data[i] != i){int state = data[i];//data[i]应该去的位置swap(state,i,data);cnt++;}}cout << cnt << endl;}int main(){int N;cin >> N;int *data = new int[N + 1];for (int i = 1; i < N + 1; ++i){cin >> data[i];}slove(data, N);return 0;}
比赛后写的,感觉比赛时候想多了,一直在想着归并排序求逆序,然而并不会归并直接放弃了。现在感觉很简单,直接让每个瓶子去它该去的地方就可以了。 不知道现在这个对不对,如果不对还请指出。。。。。。
0 0
- 蓝桥杯 2016 B组第九题 交换瓶子
- 2016蓝桥杯C/C++B组第九题 交换瓶子
- 第七届蓝桥杯大赛个人赛省赛C++ B组 (第九题 交换瓶子)
- 第七届 蓝桥杯 省赛 第九题 交换瓶子
- 蓝桥杯2016:交换瓶子
- 蓝桥杯9题----交换瓶子
- 第七届蓝桥杯——第九题||交换瓶子
- 2016蓝桥杯C/C++省赛 交换瓶子(超级大水题)
- 2016年第七届蓝桥杯C/C++程序设计本科B组省赛 交换瓶子(编程大题)
- 蓝桥杯-第七届省赛javaA组-交换瓶子
- 蓝桥杯编程题——交换瓶子
- 蓝桥杯 交换瓶子
- 交换瓶子(蓝桥杯)
- 交换瓶子 蓝桥杯
- 蓝桥杯_交换瓶子
- 【蓝桥杯】 交换瓶子
- 2016蓝桥杯省赛 交换瓶子
- 交换瓶子(蓝桥杯入门)
- TortoiseSVN 日常操作指南
- shape圆点轮播(viewpager适配器)
- 树莓派瞎玩~6~控制GPIO之C语言
- asp.net Repeater控件简单例子
- iphone真机调试时出现 could not find developer disk image问题
- 蓝桥杯 2016 B组第九题 交换瓶子
- Java ThreadLocal 解析
- Androdi编程:Activity的四种启动模式
- hdu1087 Super Jumping! Jumping! Jumping!
- base64转码
- mac xampp apache php 配置
- hdoj-1266-Reverse Number
- 事物隔离级别
- 我的Python学习之路之基本语法-函数