CF1713C Build Permutation 题解
题目链接
可能更好的食用体验
思路
看起来或许无从下手,所以我们从小的
我们设
那
Code
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+15;
int T;
int n;
int a[N];
int sub(int a){
int i;
for(i=0;i*i<a;i++);
return i*i-a;
}
void dfs(int n){
if(n==0)return (void)(a[0]=0);
int t=sub(n);
dfs(t-1);
for(int i=t,j=n;i<=n;i++,j--)a[i]=j;
}
void solve(){
cin>>n;
dfs(--n);
for(int i=0;i<=n;i++)cout<<a[i]<<' ';
puts("");
}
signed main(){
cin>>T;
while(T--)solve();
return 0;
}