Codeforces 501D Misha and Permutations Summation
康托展开后的两个序列相加后 Mod(n!) 即为一个新的康托展开的序列,不过每一位都要考虑是否要进。
因为n过大,所以用树状数组进行康托展开。
而逆康托展开时,可以用二分查询,m-sum(m)是非降序列。
代码:
#includebits/stdc++.h>
using namespace std;
const int MAXN = 2e5+5;
int n, a[MAXN]
原创
2016-12-05 18:02:22 ·
331 阅读 ·
0 评论