当前位置: 首页 > news >正文

LQ0048 交换瓶子【无标题】

题目来源:蓝桥杯2016初赛 C++ B组H题

题目描述
有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;
}

相关文章:

  • 《SpringBoot篇》11.JPA常用注解只需一个表
  • 不想手敲代码?Jupyter Notebook 又一利器 Visual Python
  • 【mysql体系结构】InnoDB索引页结构
  • Roson的Qt之旅 #123 QNetworkConfigurationManager网络配置管理
  • 【数据结构与算法】ArrayList的模拟实现
  • Spring5源码之IOC的Bean管理之xml
  • DHCP 服务
  • [架构之路-20]:目标系统 - 硬件平台 - 嵌入式系统硬件电路基础:架构、设计流程、总线、外设、基本电路、编码
  • 关系代数 运算
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • python使用cv2库实现图像的读取处理显示和保存
  • 二道题:分组顺序向下填充 和 标注数据整理
  • 节日网页HTML代码 学生网页课程设计期末作业下载 清明节大学生网页设计制作成品下载 DW节日网页作业代码下载
  • 生命在于折腾——某国外cms代码审计
  • 『从零开始学小程序』媒体组件audio组件
  • 【技术性】Search知识
  • Apache Pulsar 2.1 重磅发布
  • java中的hashCode
  • python_bomb----数据类型总结
  • spark本地环境的搭建到运行第一个spark程序
  • ViewService——一种保证客户端与服务端同步的方法
  • 创建一个Struts2项目maven 方式
  • 对象引论
  • 关于使用markdown的方法(引自CSDN教程)
  • 批量截取pdf文件
  • 前端面试题总结
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 数据结构java版之冒泡排序及优化
  • 双管齐下,VMware的容器新战略
  • 通过git安装npm私有模块
  • 06-01 点餐小程序前台界面搭建
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​人工智能书单(数学基础篇)
  • #HarmonyOS:Web组件的使用
  • (二开)Flink 修改源码拓展 SQL 语法
  • (九)信息融合方式简介
  • (循环依赖问题)学习spring的第九天
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .Net IOC框架入门之一 Unity
  • .NET Micro Framework初体验(二)
  • .net反混淆脱壳工具de4dot的使用
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • /bin/bash^M: bad interpreter: No such file or directory
  • @ModelAttribute 注解
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ C++ ] 继承
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型