LQ0048 交换瓶子【水题】
题目来源:蓝桥杯2016初赛 C++ B组I题
题目描述
有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
5
5 4 3 2 1
输出样例
3
2
问题分析
给解题程序代码,不解释。
AC的C语言程序如下:
/* LQ0048 交换瓶子 */#include <stdio.h>
#include <string.h>#define N 10000 + 1
int a[N], vis[N];int main()
{int n;while (~scanf("%d", &n)) {for (int i = 1; i <= n; i++)scanf("%d", &a[i]);memset(vis, -1, sizeof vis);int cnt = 0;for (int i = 1; i <= n; i++)if (vis[i] == -1) {cnt++;for (int j = i; vis[j] == -1; j = a[j])vis[j] = 1;}printf("%d\n", n - cnt);}return 0;
}
LQ0048 交换瓶子【水题】相关推荐
- 蓝桥杯ACM简单题-交换瓶子 2020-12-22
蓝桥杯ACM简单题-交换瓶子 1.问题描述 有N个瓶子,编号 1 ~ N,放在架子上,要求每次拿起2个瓶子,交换它们的位置,依照大小排序. 2.算法分析 现任这是排序问题,在此使用寻找排序法 3.输入 ...
- 交换瓶子(蓝桥杯真题)
交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的 ...
- c语言交换瓶子流程图,第七届蓝桥杯第9题:交换瓶子
交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的 ...
- (中石油七)问题 J: 位置2016(水题)
问题 J: 位置2016 题目描述 由于晨晨还没有研究出核心算法,在游戏中总是被明明击败.晨晨拿出了杀手锏进行反击,精心设计了一个数学难题: N个地砖,每个上面写有一个编号,开始这些编号从左到右正好是 ...
- 蓝桥杯-【交换瓶子】【2016年省赛B组题解】【C++】
2016年第七届蓝桥杯题目汇总 http://blog.csdn.net/qq_34202873/article/details/79646517 第九题: 交换瓶子 有N个瓶子,编号 1 ~ N,放 ...
- 1224. 交换瓶子
1224. 交换瓶子 暴力解法: 题解 这种暴力解法长得很像选择排序. 选择排序是分为1 ~ i的有序区 i+1 ~ n的无序区.在无序区中找一个最小的,然后放入无序区的第一个位置. 这个题也是这样, ...
- 水题/poj 1852 Ants
1 /* 2 PROBLEM:poj1852 3 AUTHER:Nicole 4 MEMO:水题 5 */ 6 #include<cstdio> 7 using namespace std ...
- HDU2673-shǎ崽(水题)
如果不能够直接秒杀的题,就不算水题.又应证了那句话,有时候,如果在水题上卡住,那么此题对于你来说,也就不算是水题了额~~ 刚睡醒,迷迷糊糊. 题目的意思很简单,求一个最大的,再求一个最小的.几乎是什么 ...
- 图论刷水题记录(二)(最短路-----SPFA算法)
继第一篇的后续,又来刷水题了,写的是SPFA算法,这个算法的复杂度比较玄学,感觉能不用就不用了,但是他的好处就是可以判断负圈. 3月26日: 1.POJ 1847 Tram 题意:在一个交通网络上有N ...
最新文章
- php 代码规范 工具,PHP工具篇:PHPStorm IDE使用CodeSniffer代码规范化管理
- Python2、Python3相对路径、绝对路径导入
- 九度OJ 区间问题
- 64位ubuntu kylin 16.04下制作tiny4412可用的SD启动卡
- 【Java】《Java面向对象编程的三大特性》阅读笔记
- python建立矩阵原理_怎么用python建立矩阵-问答-阿里云开发者社区-阿里云
- 一位00后前端2年经验的成长历程
- 小扎展示Facebook十年产品路线图,跳票的智能音箱又有新爆料
- C++ new 的三种面貌
- java 压缩包添加文件,如何在Java中向现有zip文件添加条目?
- 浏览器对象模型bom的作用是什么?
- Delphi程序开启XP的ClearType显示效果
- Windows Shellcode学习笔记——Shellcode的提取与测试
- CPU多级缓存与缓存一致性,详细的讲解
- c语言 switch错误用法,C语言switch使用之诡异用法详解
- 清除90天苹果充值记录_王者荣耀安卓苹果跨系统角色转移服务,限量测试收费99元...
- 达梦数据库SYSDBA密码攻略
- centos7 nvidia显卡安装
- CSU-ACM2017暑期训练5-三分 D - Toxophily HDU - 2298
- arthes—线上debug好帮手