用户登录
用户注册

分享至

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

  • 作者: 我是高级单身汪
  • 来源: 51数据库
  • 2021-09-02

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;
      }
    }
}

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

软件
前端设计
程序设计
Java相关