CF1831A Twin Permutations

 
#include<bits/stdc++.h>

using namespace std;
typedef long long ll;
void tc(){
    ll n;
    cin>>n;
    for(ll i=0;i<n;i++){
        ll x;
        cin>>x;
        cout<<n+1-x<<' ';
    }
    cout<<'\n';
}
int main()
{
    ios_base::sync_with_stdio(false); cin.tie(0);
    ll t; cin>>t; while(t--)
        tc();
    return 0;
}
View Code
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<bits/stdc++.h>
#define ll long long
#define ddd printf("-----------------debug\n");
using namespace std;

int n;
int a[200],b[200],used[200],pd;
void dfs(int dep)
{
    if(pd) return;
    if(dep==n+1)
    {
        int flag=0;
        for(int i=2;i<=n;i++)
        {
            if(b[i]+a[i]<b[i-1]+a[i-1]) flag=1;
        }
        if(flag==0) { for(int i=1;i<=n;i++) cout<<b[i]<<" "; cout<<'\n'; pd=1; return;} 
    }
    for(int i=1;i<=n;i++)
    {
        if(used[i]==0)
        {
            b[dep]=i; used[i]=1;
            dfs(dep+1);
            b[dep]=0;used[i]=0;
        }
    }
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);
    
    int T; cin>>T;
    
    while(T--)
    {
        memset(b,0,sizeof(b)); memset(used,0,sizeof(used));
        pd=0;
        cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i];
       // for(int i=1;i<=n;i++) cout<<a[i];
        
        dfs(1);
        cout<<'\n';
    }
    
    return 0;
}
dfs

 

 
 
 
posted @ 2023-07-21 14:17  JMXZ  阅读(27)  评论(0)    收藏  举报