CF 1896 A. Jagged Swaps 学习笔记

链接

传送门

代码

cpp 复制代码
#include<bits/stdc++.h>

using namespace std;

const int N=20;

int a[N];

int main()
{
	int t;
	scanf("%d",&t);
	
	while(t--)
	{
		int n;
		scanf("%d",&n);
		
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
		}
		
		if(a[1]==1)	printf("yes\n");
		else	printf("no\n");
		
		memset(a,0,sizeof a);
	}
	
	return 0;
}

总结

1.第一次写WA 2 ,代码如下

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

const int N=20;

int a[N],b[N];

int main()
{
	int t;
	scanf("%d",&t);
	
	while(t--)
	{
		int n;
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
			b[i]=a[i];
		}
		sort(b+1,b+1+n);
		//for(int i=1;i<=n;i++)	printf("%d ",b[i]);
		
		for(int i=2;i<=n-1;i++)
		{
			if(a[i]>a[i-1]&&a[i]>a[i+1])	swap(a[i],a[i+1]);
		}
		
		bool flag=false;
		for(int i=1;i<=n;i++)
		{
			if(a[i]!=b[i])
			{
				flag=true;
				break;
			}
		}
		
		if(flag==true)	printf("no\n");
		else	printf("yes\n");
		
		memset(a,0,sizeof a);
		memset(b,0,sizeof b);
	}
	
	return 0;
}

//permutation 排列
//arbitrary 任意的
//modified 改变
//Hence 因此
//hold 包含
//pretend 假装
//Implementation 实施

错误思路是,每遇到一个a[i]>a[i-1]&&a[i]>a[i+1]的情况,就交换a[i]和a[i+1],但事实上不是这样的,我们是有选择的交换,而不是遇到一个交换一个

2.题目说的很清楚,给定一个排列,特意解释了一下排列的意思,比如说总的元素个数是3,元素就只会是1,2,3,我刚开始还以为只是这个题目数据范围比较小

3.a[i]>a[i-1]&&a[i]>a[i+1],i>=2&&i<=n-1,我们可以发现,第一个数字是无法移动的,所以第一个数字必须是数字1

4.有选择的进行交换操作:首先交换最大的数字,把最大的数字移动到排列的最后面,然后移动倒数第二大的数字,循环操作,直到排列完成,所以说只要第一个数字等于1,后面的数字都可以排列好,只需要判断第一个数字是否为1该题就可以解决

相关推荐
石去皿13 小时前
小样本提示学习全指南:从 Zero-shot 到 Few-shot-LtM 的核心策略解析
学习
今天你TLE了吗13 小时前
JVM学习笔记:第四章——虚拟机栈
java·jvm·笔记·后端·学习
weixin_4481199413 小时前
Datawhale Easy-Vibe 202602 第3次笔记
笔记
知识分享小能手13 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 数据库的备份与恢复 — 语法知识点及使用方法详解(19)
数据库·学习·sqlserver
風清掦13 小时前
【江科大STM32学习笔记-06】TIM 定时器 - 6.2 定时器的输出比较功能
笔记·stm32·单片机·嵌入式硬件·学习
babe小鑫14 小时前
大专数据可视化技术专业学习数据分析的价值
学习·信息可视化·数据分析
bill_man14 小时前
RHI学习笔记(2)-Qt6的RHI结构
笔记
Non importa14 小时前
二分法:算法新手第三道坎
c语言·c++·笔记·qt·学习·算法·leetcode
山岚的运维笔记14 小时前
SQL Server笔记 -- 第74章:权限或许可 第75章:SQLCMD 第76章:资源调控器
数据库·笔记·sql·microsoft·oracle·sqlserver
舟舟亢亢14 小时前
Redis知识复习笔记(上)
数据库·redis·笔记