欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Codeforces Round #686 (Div. 3)_A. Special Permutation

程序员文章站 2022-03-14 19:53:08
A. Special Permutation题目链接在此!题面:ExampleinputCopy225outputCopy2 12 1 5 3 4题意分析:1~n的序列,要求a[i]!=i即可。思路:倒着放,如果n是奇数就把中间那个a[n/2+1]与首位调换顺序。达到目的。代码块:#include #include #include #include ...

A. Special Permutation

题目链接在此!

题面:
Codeforces Round #686 (Div. 3)_A. Special Permutation
Example
inputCopy
2
2
5
outputCopy
2 1
2 1 5 3 4

题意分析:

1~n的序列,要求a[i]!=i即可。
思路:倒着放,如果n是奇数就把中间那个a[n/2+1]与首位调换顺序。达到目的。

代码块:

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cmath>
using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int T;
    cin>>T;
    while(T--){
      int n;
      int a[1001];
      cin>>n;
      if(n%2==0){
        for(int i=1;i<=n;i++){
            a[i]=i;
        }
      cout<<a[n];
      for(int i=n-1;i>=1;i--){
          cout<<" "<<a[i];
      }
      cout<<endl;
    }
      else{
          for(int i=1;i<=n;i++){
              a[i]=i;
          }
          int temp;
          temp=a[1];
          a[1]=a[n/2+1];
          a[n/2+1]=temp;
          cout<<a[n];
          for(int i=n-1;i>=1;i--){
              cout<<" "<<a[i];
          }
          cout<<endl;
      }
    }
}

感觉写繁琐了,不过无所谓啦。

本文地址:https://blog.csdn.net/weixin_45849398/article/details/110108805

相关标签: CF加训 c++