摘要: 感觉非常不可做,于是考虑有什么奇怪的性质。 先考虑怎么求子集和mex。将数从小到大排序,假设已经凑出了0~n的所有数,如果下一个数>n+1显然mex就是n+1了,否则若其为x则可以凑出1~n+x所有数。 对于区间查询,建棵主席树即可,每次查询权值线段树上lastn+2~n+1的区间,用区间和更新n, 阅读全文
posted @ 2018-10-23 22:28 Gloid 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 一个暴力的做法是把边看成点,之间的边权为两边的较大权值,最短路即可。但这样显然会被菊花图之类的卡掉。 考虑优化建图。将边拆成两个有向边,同样化边为点。原图中同一条边在新图中的两个点之间连边权为原边权的边。对于原图同一点的出边按权值从小到大排序,权值相邻的由小到大连边权为差值的边,由大到小连边权为0的 阅读全文
posted @ 2018-10-23 21:02 Gloid 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 用trie求出前缀最大区间异或和、后缀最大区间异或和即可。注意空间是nlog的。 阅读全文
posted @ 2018-10-23 18:39 Gloid 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 贪心的按位考虑。如果所有数在某一位上有奇数个为1,显然无论如何划分这一位最终都会为1;否则将每一部分都划分为偶数个1就能保证最终该位为0,可以标记上哪些位置可以作为划分点(当然也要满足之前可为0的位上是0),如果剩余划分点个数>=m-1则说明该位可为0。 阅读全文
posted @ 2018-10-23 18:24 Gloid 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 相当于一个有负体积的背包。显然如果确定了选哪些,应该先把体积小的挂上去。于是按体积从小到大排序,就是一个裸的背包了。 阅读全文
posted @ 2018-10-23 00:58 Gloid 阅读(184) 评论(0) 推荐(0) 编辑