I - Inverted Deck(思维题)

2023-12-02 23:18
文章标签 思维 deck inverted

本文主要是介绍I - Inverted Deck(思维题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目
在这里插入图片描述
在这里插入图片描述
题意:给出n个数,若能交换其中的一段数序列使之能从小到大排列。输出改变的左端点和右端点的下标值;否则输出-1;
思路:sort一遍使序列成为从小到大的排列,与原串对比查找;
1特判与原串相同输出“1 1”;
2特判从大到小的情况输出“1 n”;
3剩余的情况:left从1开始找不相等的左端点,right从n开始倒着找不相等的右端点;swap (left,right)的序列;若swap与原串相同输出“left right”;否则输出“-1”;

AC代码

#include <bits/stdc++.h>using namespace std;
int a[1000010];
int b[1000010];
int main()
{int n;cin>>n;for(int i=1; i<=n; i++){cin>>a[i];b[i]=a[i];}sort(b+1,b+1+n);int flag=1;if(flag==1){for(int i=1; i<=n; i++){if(a[i]!=b[i]){flag=0;break;}}}if(flag==1)//从小到大的情况{cout<<1<<" "<<1<<endl;}else{int g=1;for(int i=1; i<=n; i++){if(a[i]!=b[1+n-i]){g=0;break;}}if(g==1)//从大到小的情况cout<<1<<" "<<n<<endl;else//一般情况{int right=n,left=1;for(int i=1; i<=n; i++){if(a[i]==b[i]){left++;}else{break;}}for(int i=n; i>=1; i--){if(a[i]==b[i]){right--;}elsebreak;}for(int j=left; j<=(left+right)/2; j++){swap(a[j],a[left+right-j]);}int flag=1;for(int i=1; i<=n; i++){if(a[i]!=b[i]){flag=0;break;}}if(flag==1)cout<<left<<" "<<right<<endl;elsecout<<"impossible"<<endl;}}return 0;
}

这篇关于I - Inverted Deck(思维题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/447209

相关文章

如何突破底层思维方式的牢笼

我始终认为,牛人和普通人的根本区别在于思维方式的不同,而非知识多少、阅历多少。 在这个世界上总有一帮神一样的人物存在。就像读到的那句话:“人类就像是一条历史长河中的鱼,只有某几条鱼跳出河面,看到世界的法则,但是却无法改变,当那几条鱼中有跳上岸,进化了,改变河道流向,那样才能改变法则。”  最近一段时间一直在不断寻在内心的东西,同时也在不断的去反省和否定自己的一些思维模式,尝试重

算法学习014 0-1背包问题 c++动态规划算法实现 中小学算法思维学习 信奥算法解析

目录 C++0-1背包 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、运行结果 五、考点分析 六、推荐资料 C++0-1背包 一、题目要求 1、编程实现 有 N 件物品和一个容量为 M的背包,每件物品有各自的价值且只能被选择一次,要求在有限的背包容量下,装入的物品总价值最大。 2、输入输出 输入描述:第一行输入两个整数,分别表示

常见数字化转型方案撰写的思维模式

通过这一段时间的学习和倾听,结合DAMA数据管理知识体系学习与项目实践,对大部分数据治理类项目、信息化建设和数字化转型项目的思维模式做了一些总结梳理,具体有如下四种,供参考。 一、方法1:结合环境六边形法 1.要点题,弄清楚问题是什么 2.目标原则有哪些,补充哪些 3.人员、组织、角色和责任是什么,需要调动哪些资源,他们的角色和责任分别是什么。 4.方法工具有哪些,发现问题,分析问题和解决

《世界上最伟大的50种思维方法》总结

思维方式要是不对,再多的努力也是徒劳。比努力更重要的是思维 好思路,千万条,本书以有趣的形式,分享了50种思维方式。这些好材料,不一定能包你当场见效,但有一点可以肯定,这些经典的思维方式,总有一朝,会让你饱尝甜头。 本文作者将50种思维方法分成了三大类:最经典的思维、最有效的思维以及最实用的思维等,具体内容如下: 最经典的思维 最有效的思维 最实用的思维

独孤思维:副业赚钱高深莫测,因为一大把人一贫如洗

其实做副业的秘诀。 很多博主已经讲过,而且都是免费的。 但是为什么,依旧很多人看了之后,没赚到钱。 除了执行力以外,还有一个非常致命的原因。 就是看懂了,却没法深切体会。 因为自己没有经历过,所以,无法通过表面的意思,去深刻理解底层逻辑。 什么意思呢? 比如,很多博主都已经讲过,获取流量,靠量取胜。 如何靠量? 每天不停发发发,写写写,坚持下去,就能获取流量。 很多人,之所以坚

大脑临界状态:探索思维背后的物理机制

在深度思考或创造性灵感的涌现时刻,个体常体验到一种介于混乱与有序之间的特殊心理状态。这种感受实则反映了大脑在认知过程中的临界状态,这是一种涉及复杂物理现象的心理活动表现。近期研究表明,大脑结构中存在着与临界性密切相关的物理特性,这为理解大脑功能提供了新的科学依据。 自然界的相变现象,如冰融化为水,为我们提供了一个理解大脑临界状态的直观比喻。在思考过程中,大脑神经元的活动模式经历类似的

Vue内部运行机制剖析--思维导图总结

总结的Vue机制内部运行概览思维导图: VUE机制内部运行概览思维导图文字版本: 初始化以及挂载来自于:new Vue()之后调用分方法:_init初始化生命周期、事件、 props、 methods、 data、 computed 与 watch之后: $mount 会挂载组件编译template编译parse会用正则等方式解析 template 模板中的指令、class、style

独孤思维:副业出了第一单才赚几块钱?

01 独孤现在如果一天不输出内容,就会浑身难受。 不是作,也不是吹嘘。 这也没什么好作的。 就是一种精神满足感。 如果一天什么内容都没有输出。 没有向外界,展示自己的观点,内容。 总会感觉,这一天,白过了。 02 有个刚做副业的小伙伴跟我说。 刚才出了第一单, 但是没啥利润,只能赚几块钱。 问我怎么办? 我说发货。 一定要成交。 因为第一单,不管是多少钱,哪怕1块钱,

思维拓展

(1)不使用额外的空间交换两个数           a. 方法一.   A=A+B                              B=A-B;(A+B-B=A)                              A=A-B;(A+B-A=B)           b.方法二.   A=A^B                             B=B^A