二次联通门 : BZOJ 3689: 异或之

/*BZOJ 3689: 异或之zz题
*/
#include <cstdio>
#include <iostream>
#include <queue>
#define rg register
struct IO
{static const int BUF = 12323233;char p[BUF], *s, *t, e[BUF]; int a[25];IO () : s (p), t (e) { fread (s, 1, BUF, stdin); }~IO () { fwrite (e, 1, t - e, stdout); }operator int (){rg int j = 1, v = 0;for (; *s < 48; j = *s ++ ^ 45);do v = v * 10 + *s ++ - 48; while (*s >= 48);return j ? v : -v;}void pt (int v){static int *q = a;if (!v) *t ++ = 48;else {if (v < 0) *t ++ = 45, v *= -1;for (; v; *q ++ = v % 10 + 48, v /= 10);for (; q != a; *t ++ = *-- q);}*t ++ = ' ';}
} ip;#define Max 200203
int tr[Max * 20][2], TC, s[Max * 20];void In (int key)
{int n = 0;for (rg int t, i = 30; i >= 0; -- i){t = (key >> i) & 1;if (!tr[n][t]) tr[n][t] = ++ TC;n = tr[n][t], ++ s[n];}
}int Ask (int key, int k)
{int res = 0, n = 0;for (rg int i = 30, t; i >= 0; -- i){t = (key >> i) & 1;if (s[tr[n][t]] >= k) n = tr[n][t];else k -= s[tr[n][t]], n = tr[n][t ^ 1], res += (1 << i);}return res;
}
struct D
{ int key, rk, x; D (int a = 0, int b = 0, int c = 0) : key (a), rk (b), x (c) {}bool operator < (const D &rhs) const { return x > rhs.x; }
};int a[Max];
std :: priority_queue <D> Q;int main (int argc, char *argv[])
{int N = ip, K = ip; rg int i; D n;for (i = 1; i <= N; ++ i) a[i] = ip, In (a[i]);for (i = 1; i <= N; ++ i) Q.push (D (a[i], 2, Ask (a[i], 2)));for (i = 1; i < (K << 1); ++ i){n = Q.top (), Q.pop ();if (i & 1) ip.pt (n.x);++ n.rk, n.x = Ask (n.key, n.rk), Q.push (n);}return 0;
}

转载于:https://www.cnblogs.com/ZlycerQan/p/7800767.html

BZOJ 3689: 异或之相关推荐

  1. 2019十二省联考游记

    Day0 早上在机房复习复习模板,准备下午去试机时打打LCT/多项式各类运算什么的- 试机的时候发现键盘的线垫在下面很不舒服 然后晚上莫名和机房几位大佬一起被拉去与教练,家长们吃饭-(据说死刑犯上刑场 ...

  2. BZOJ.4888.[TJOI2017]异或和(树状数组)

    BZOJ 洛谷 \(Description\) 求所有区间和的异或和. \(n\leq 10^5,\ \sum a_i\leq 10^6\). \(Solution\) 这样的题还是要先考虑按位做. ...

  3. bzoj异或之[查询异或和的第k小]

    题目大意:给你n个数,两两互相异或出n∗(n−1)/2n*(n-1)/2n∗(n−1)/2个数,求前k小的数 第一次知道trie树可以查询异或值得第k小 解题思路有点像这道题:题目门 我们可以用优先队 ...

  4. BZOJ 4103 [Thusc 2015]异或运算 (可持久化01Trie+二分)

    题目大意:给你一个长方形矩阵,位置$i,j$上的数是$a_{i}\;xor\;b_{j}$,求某个子矩阵内第$K$大的值 最先想的是二分答案然后验证,然而是$O(qnlogmloga_{i})$,不出 ...

  5. 【BZOJ 4671】异或图 【斯特林反演】【线性基】【贝尔数复杂度】

    传送门 题意:定义两个图的异或的边集为在两张图中恰出现一次的边.给sss张nnn个点的图的集合,求异或和为连通图的子集数. s≤60,n≤10s \leq 60,n \leq 10s≤60,n≤10 ...

  6. 【BZOJ 4103】 [Thu Summer Camp 2015]异或运算 可持久化01Trie

    我们观察数据:树套树 PASS    主席树 PASS  一层一个Trie PASS 再看,异或!我们就把目光暂时定在01Tire然后我们发现,我们可以带着一堆点在01Trie上行走,因为O(n*q* ...

  7. 【BZOJ 4103】 4103: [Thu Summer Camp 2015]异或运算 (可持久化Trie)

    4103: [Thu Summer Camp 2015]异或运算 Time Limit: 20 Sec  Memory Limit: 512 MB Submit: 474  Solved: 258 D ...

  8. BZOJ 3261: 最大异或和位置-贪心+可持久化01Trie树

    3261: 最大异或和 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 3519  Solved: 1493 [Submit][Status][Dis ...

  9. bzoj 3261 最大异或和【可持久化trie】

    因为在后面加数字又求后缀和太麻烦,所以xor[p...n]=xor[1...n]^xor[p-1...n]. 首先处理出来区间异或前缀和,对前缀和建trie树(在最前面放一棵0表示最开始的前缀和 然后 ...

  10. BZOJ 3261: 最大异或和 [可持久化Trie]

    3261: 最大异或和 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 1513  Solved: 657 [Submit][Status][Disc ...

最新文章

  1. 从零开始写一个武侠冒险游戏-3-地图生成
  2. 2019全国普通高校学科竞赛排行榜发布
  3. solr文档索引最佳实践
  4. 3G-SDI光端机产品技术参数规格及产品应用领域
  5. oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型
  6. 项目管理学习总结(14)——优秀技术Leader应该具备什么哪些方面的能力
  7. C语言学习笔记---打印函数printf()和sprintf()函数
  8. 这台计算机没有连接到网络怎么办,如果计算机连接到路由器并且没有互联网,该怎么办...
  9. Visio Professional详细教程(一)
  10. 校园虚拟服务器设备配置规划,校园高性能虚拟化服务器平台建设规划.doc
  11. animation动画--跳动
  12. 杨亮词汇5500-课程导学
  13. 以 2、3……16 进制输出一无符号整型数
  14. Neural Tangent Kernel 理解(一)原论文解读
  15. CODESYS Automation Server Connector
  16. Java——Error running exam-web: Adress localhost:1099 is already in use
  17. linux下网页制作,linux网页制作
  18. 传奇服务器充值系统,传奇服务端会员系统COM引擎传奇增加会员系统的方法
  19. 【前端】——Ajax
  20. 功能更强的手机-Symbian OS手机(转)

热门文章

  1. 区分解析解(analytical solution)与数值解(numerical solution)
  2. 谈谈我对攻读计算机研究生的看法(转一个牛人文章)
  3. 操作系统原理(七)文件系统
  4. 23种设计模式(十二)对象性能之享元模式
  5. C++ Primer Plus 第二章编程练习
  6. eclipse 添加jar (servlet api)
  7. MLNC – Machine Learning Neural Computation
  8. 关于VS2017提示I/O文件操作函数需要加上_s的解决办法
  9. shop--6.店铺注册--店铺注册之Service层的实现
  10. 全文索引--海量数据模糊查询