摘要:
题目 传送门 思路 比较巧妙的一道构造题 首先考虑排列的情况 因为是排列,所以每一个数位上的最终状态一定是固定的 设$b_i$满足$a_=i$ 如果交换$a_,a_$,那么$b_i,b_j$一定也会被交换 再者,如果$a$有序,那么$b$一定也有序,反之亦然 考虑逆序对映射到$b$上会是什么情况 \ 阅读全文
posted @ 2020-07-20 11:41
loney_s
阅读(175)
评论(0)
推荐(0)
摘要:
题目 传送门 思路 这道题和折半搜索有点类似 通过暴力可以算出 如果只有8个质数,在1e18内能表示的数的范围不是很大 也就是指可以考虑将8个质数分成一组,另外8个质数分成一组 如果已知一个数 就可以用$O(n*log_n)$的时间去找出小于这个数一共有多少个数,即枚举一个集合,二分一个集合 用一个 阅读全文
posted @ 2020-07-20 10:59
loney_s
阅读(163)
评论(0)
推荐(0)
摘要:
题目 传送门 思路 首先如果不考虑数据范围 很容易有一个$O(n*2^{30})$的算法 此时我们想,如果只有值域只有$2^{15}$ 该有多好 比较容易的可以想到折半搜索 我们用差分对数组和操作进行处理 这里的操作指的是每一位上异或1会是什么情况 最后的答案一定是全是0的数组 用map维护一下另一 阅读全文
posted @ 2020-07-20 10:49
loney_s
阅读(109)
评论(0)
推荐(0)
摘要:
题目 传送门 思路 阿这,这道题确实没有想到会是如此暴力的时间复杂度$O(\frac{n^3}{32})$ 对于第一和第二个限制,相信可以不用过多阐释,直接暴力就可 看到这个常数,最容易想到的就是$bitset$ 我们考虑按照权值的大小来填,填了的位置赋值为1,没有填的赋值为0 考虑我们要将权值为$ 阅读全文
posted @ 2020-07-20 10:36
loney_s
阅读(139)
评论(0)
推荐(0)
摘要:
题目 传送门 思路 求第k大的题大多都是要一位一位的来求 我们考虑固定了首位有多少种情况 设$tot_i$表示数字$i$还能选多少次 $dp_{i,j}$表示前i个数一共占了j个位置 \(dp_{i,j}=\sum_{k=0}^{min(j,tot_i)}dp_{i-1,j-k}*C_j^k\) 方 阅读全文
posted @ 2020-07-20 10:25
loney_s
阅读(127)
评论(0)
推荐(0)
摘要:
题目 传送门 思路 这,很巧妙 通过输出300个a和300个b就可以得到a和b的个数 进而可以得到总共的位数 之后一位一位的试就行了 代码 #include<iostream> using namespace std; int n=300; int lena,lenb,ret,la; string 阅读全文
posted @ 2020-07-20 10:02
loney_s
阅读(122)
评论(0)
推荐(0)

浙公网安备 33010602011771号