1 条题解
-
0
#include<bits/stdc++.h> using namespace std; typedef long long ll, LL; #define pb push_back vector<int> dc; void solve() { int n; cin >> n; // if(n == 1) cout << 0; // else { int a = dc[int(log2(n - 1))]; for(int i = n - 1; i > 0; i--) { if(i > a) cout << i << ' '; else if(i == a) cout << a << ' ' << 0 << ' '; else cout << i << ' '; } // } } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); dc.pb(1); for(int i = 0; i <= log2(3e5); i++) { dc.pb(dc[i] * 2); } int t = 1; // cin >> t; while(t--) { solve(); } return 0; } // 0和任何数xor都是数本身 // 1 2 3 4 5 6 7 8 9 10 11 12 13 // 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 // 观察规律,分成2、 4、 8、 16等档次, // 0与档次数放一起,最高档次数内放一起,靠边放,可保证最大xor结果一定为最高档次位
- 1
信息
- ID
- 1655
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 提交数
- 25
- 已通过
- 8
- 上传者