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

蓝桥杯每日一题2023.11.20

题目描述

“蓝桥杯”练习系统 (lanqiao.cn)

题目分析

方法一:暴力枚举,如果说数字不在正确的位置上也就意味着这个数必须要改变,进行改变记录即可

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int n, a[N], ans;
int main()
{cin >> n;for(int i = 1; i <= n; i ++)cin >> a[i];for(int i = 1; i <= n; i ++){if(a[i] != i){for(int j = i + 1; j <= n; j ++){if(a[j] == i){swap(a[i], a[j]);ans ++;}}}}cout << ans;return 0;
}

方法二:置换群算法,每个数字和对应位置相连可以组成一个环,如果说每个数字可以形成自环也就说明每一个数字都在自己正确的位置上,我们可以找出有几个环,n - 环的个数则为需要交换的个数。

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int a[N], n, cnt;
bool st[N];
int main()
{cin >> n;for(int i = 1; i <= n; i ++)cin >> a[i];for(int i = 1; i <= n; i ++){if(!st[i]){cnt ++;for(int j = i; !st[j]; j = a[j]){st[j] = true;}}}cout << n - cnt;return 0;
}
http://www.lryc.cn/news/238558.html

相关文章:

  • 【迅搜02】究竟什么是搜索引擎?正式介绍XunSearch
  • 【Sql】sql server还原数据库的时候,提示:因为数据库正在使用,所以无法获得对数据库的独占访问权。
  • 【Go语言实战】(26) 分布式搜索引擎
  • 【理解ARM架构】不同方式点灯 | ARM架构简介 | 常见汇编指令 | C与汇编
  • JS服务端技术—Node.js知识点锦集
  • 界面控件DevExpress WPF流程图组件,完美复制Visio UI!(一)
  • 为什么选择B+树作为数据库索引结构?
  • 什么是神经网络(Neural Network,NN)
  • 15 Go的并发
  • 管理体系标准
  • 【Java 进阶篇】揭秘 Jackson:Java 对象转 JSON 注解的魔法
  • ②【Hash】Redis常用数据类型:Hash [使用手册]
  • 十七、SpringAMQP
  • Java虚拟机(JVM)的调优技巧和实战
  • idea中的sout、psvm快捷键输入,不要太好用了
  • shell脚本字典创建遍历打印
  • 【设计模式】聊聊职责链模式
  • 【C++进阶之路】第五篇:哈希
  • CentOS基Docker容器时区配置解决方案
  • 探索 Material 3:全新设计系统和组件库的介绍
  • 《多GPU大模型训练与微调手册》
  • 【C++】const与类(const修饰函数的三种位置)
  • 深度学习在图像识别中的革命性应用
  • R语言读文件“-“变成“.“
  • RabbitMQ 基础操作
  • 自然语言处理:Transformer与GPT
  • Ps:裁剪工具 - 裁剪预设的应用
  • 前端工程化-什么是构建工具
  • 01-论文阅读-Deep learning for anomaly detection in log data: a survey
  • 图像处理02 matlab中NSCT的使用