CF1689B Mystic Permutation

阅读: 评论:0

CF1689B Mystic Permutation

CF1689B Mystic Permutation

洛谷传送门:CF1689B Mystic Permutation - 洛谷 | 计算机科学教育新生态 (luogu)

难度:普及-(个人觉得只能算入门难度)

知识点: 贪心

思路:

        和顺序数组比较,如果一样了,那就swap(ans[i], ans[i+1])

        注意,最后一位的比较要单独讨论,因为是swap(ans[nums], ans[nums-1]),和之前写法不同

        最后,讨论特判,只有n=1时,才会输出-1

AC代码:

#include<bits/stdc++.h>
using namespace std;int main(){int time; scanf("%d", &time);while(time--){int nums; scanf("%d", &nums);vector<int> arr(nums+1);vector<int> ans(nums+1);for(int i = 1; i<=nums; i++){  //读入arr数组,并且初始化答案数组scanf("%d", &arr[i]);ans[i] = i;}if(nums==1){printf("-1n");continue;}for(int i = 1; i<=nums-1; i++)if(ans[i]==arr[i]) swap(ans[i], ans[i+1]);if(ans[nums]==arr[nums]) swap(ans[nums], ans[nums-1]);for(int i = 1; i<=nums; i++) printf("%d ", ans[i]);printf("n");}return 0;
}

本文发布于:2024-02-02 19:21:14,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170687287445902.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:CF1689B   Mystic   Permutation
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23