0 pts 求调
查看原帖
0 pts 求调
814343
bc2_cryeggy楼主2024/5/19 20:54
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <queue>

using namespace std;

using ll = long long;

const int kMaxN = 2e5 + 10, kInf = (((1 << 30) - 1) << 1) + 1;
const ll kLInf = 9.22e18;

ll n, sum = 0;
deque<ll> dq;
vector<ll> v;

void S(ll x) {
  if (x == 1) {
    return;
  }
  if (x % 2) {
    S(x - 1);
    ++ sum;
    dq.push_front(sum);
  } else {
    S(x >> 1);
    ++ sum;
    dq.push_back(sum);
  }
}

vector<ll> construct_permutation(ll k) {
  dq.clear();
  v.clear();
  sum = 0;
  S(k);
  v.push_back(sum);
  for (auto i : dq) {
    v.push_back(i);
  }
  return v;
}
2024/5/19 20:54
加载中...