随笔分类 -  其他-折半搜索

摘要:题目 传送门 题解 考虑二分一个 \(x\),看一看在 \([1,x]\) 中的合法数是否有 \(k\) 个 如何计算?我们考虑折半搜索,将 \(p[i]\) 分成前一半和后一半,在前一半中枚举 \(m[i]\),然后在后一般中看一看小于等于 \(\frac{x}{m[i]}\) 的数有多少个,累加 阅读全文
posted @ 2020-07-20 09:12 Arextre 阅读(88) 评论(0) 推荐(0)
摘要:题目 传送门 题解 考虑先将每一位上单独异或一个 $1$ 所有数会使 \(a[i]\) 发生什么变化,可以这样预处理出来: inline void Getcnt(){ rep(i,0,MAXK){ rep(j,1,n)if((a[j]^(1<<i))<a[j])cnt[i][j]=-1; else 阅读全文
posted @ 2020-07-20 09:01 Arextre 阅读(120) 评论(0) 推荐(0)