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

蓝桥杯备考---》分类讨论之Fixed Points

这道题的意思啊,就是说我们在数组里输入n个数,我们尽可能让下标和数组的值相同,我们只能交换一次,最多能有多少个值和下标一样

这里我们需要分类讨论,如果每个下标的值都符合要求,我们就不交换了

如果不是都不符合要求,我们就要考虑怎么交换价值最高了

比如这样一组数,上面是值,下面是下标,我们交换一组数,可以交换下标0和下标4,这样的话我们就多了两个符合要求的数,然后最后的情况就是没有能够恰好交换两组数符合要求的

那就是交换完只能有一个数符合要求,比如这个,我们交换下标0,4的值,让1对应4,0对应0,只能多出一对儿出来

这就是三种情况的讨论,好的,我们来实现一下代码吧

#include <iostream>
using namespace std;
const int N = 1e5+10;

int a[N];
int cnt;
int main()
{
	int n;cin >> n;
	bool flag = false;
	for(int i =0;i<n;i++)
	{
		cin >> a[i];
		if(a[i] == i) cnt++;
	}
	if(cnt == n)
	{
		cout << cnt << endl;
	}
	else{
		for(int i = 0;i<n;i++)
		{
			if(a[i]!=i && a[a[i]] == i)
			{
				cnt+=2;
				flag = true;
				break;
			}
		}
		if(!flag)
		{
			cnt+=1;
		}
		cout << cnt << endl;
	}
}

相关文章:

  • 在Ubuntu20.04上交叉编译能在Windows上运行的Qt5应用
  • Vue3 集成wangEditor 5
  • 鸿蒙开发真机调试:无线调试和USB调试
  • MQ,RabbitMQ,MQ的好处,RabbitMQ的原理和核心组件,工作模式
  • LeetCode 解题思路 22(Hot 100)
  • 9.嗅探与Wireshark进阶分析
  • 使用Python在Word中创建、读取和删除列表 - 详解
  • DeepSeek接入多模态,个人电脑也能飞速生成高清图,确实可以封神了!
  • 目前主要虚拟世界平台在单一实例承载人数和伺服器架构的综合比较分析(从开资料和技术推估):
  • 寄存器(内部访问)
  • WordPress靶场攻略
  • 微服务》》Kubernetes (K8S) 集群配置网络》》Calico
  • deepseek使用记录24——小灵
  • docker、docker-compose常用命令
  • Java 实现排序算法 TopK 问题
  • AcWing 839:模拟堆 ← multiset + unordered_map
  • 4.玩转热图(续:矩阵式网络关系热图、Pivot Table 热图、三维/交互式热图)——Python数据挖掘代码实践
  • 2025年优化算法:人工旅鼠算法(Artificial lemming algorithm,ALA)
  • Devops之Docker:Docker入门
  • Pandas数据分析
  • 上海徐汇 “家 + 书屋”,创新服务广大家庭
  • 沧州盐碱地“逆天改命”:无用之地变良田,候鸟翔集水草丰美
  • “80后”北大硕士罗婕履新甘肃宁县县委常委、组织部部长
  • 《掩耳盗邻》:富人劫富,是犯罪,也是赎罪?
  • 北方首场高温将进入鼎盛阶段,江南华南多地需警惕降雨叠加致灾
  • 习近平就乌拉圭前总统穆希卡逝世向乌拉圭总统奥尔西致唁电