Educational Codeforces Round 37 (Rated for Div. 2), problem: (C) Swap Adjacent Elements 【贪心】
发布日期:2021-06-29 14:29:33 浏览次数:2 分类:技术文章

本文共 556 字,大约阅读时间需要 1 分钟。

题意

你有一个由n个整数组成的数组。从1到n的每个整数在此数组中只出现一次。

对于某些索引i(1≤i≤n - 1),可以将第i个元素与(i + 1)个交换,对于其他索引则不可能。您可以按任何顺序执行任意数量的交换操作。使用(i + 1)-th交换第i个元素的次数没有限制(如果不禁止该位置)。
你能否按升序对这个数组进行排序,执行一系列交换操作?

思路

正向遍历所有元素,判断当前最大值是否大于编号

code

#include
#define endl '\n'using namespace std;const int maxn=2e5+5;int a[maxn];int n;char s[maxn];int main(){
ios::sync_with_stdio(false); cin.tie(0); cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>(s+1); int mmax=-1; int ff=1; for(int i=1;i
i) ff=0; } if(ff) cout<<"YES"<
学如逆水行舟,不进则退

转载地址:https://chocolate.blog.csdn.net/article/details/104147712 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Codeforces Round #549 (Div. 2), problem: (C) Queen 【思维】
下一篇:Codeforces Round #484 (Div. 2), problem: (C) Cut 'em all! 【dfs】

发表评论

最新留言

不错!
[***.144.177.141]2024年04月11日 08时53分09秒