随笔分类 -  位运算

摘要:Link 首先这个题目的限制卡的很死,最好是O(n)解决,其次当看到异或的时候,就可以考虑按照二进制位进行计算。 对于这个题,我们定义dpi表示以ai为最右端的子区间的答案的和 那么首先可以想到,贡献给这个答案的有两个部分,包括ai的和不包括的,其中不包括ai 阅读全文
posted @ 2023-09-18 20:58 Simex 阅读(112) 评论(0) 推荐(0) 编辑
摘要:Link 简单版本的结论还是很容易猜到的。 首先很容易想到的第一步就是尽可能地不覆盖地取尽可能多地区间,最后剩下了一小块。 然后在接着原来的指针一个一个地往右问,直到不能问了为止。 为什么这样是正确的呢?首先,在这样一步一步地往右查询的过程中,我们会发现总是前$k-1个数加上后面的一个数。 然后题面 阅读全文
posted @ 2023-09-18 19:54 Simex 阅读(22) 评论(0) 推荐(0) 编辑
摘要:[link](https://codeforces.com/contest/1851) #### A 非常简单的比较大小问题 ```cpp #include #include #include #include #include #include #include #include #include 阅读全文
posted @ 2023-07-28 18:02 Simex 阅读(21) 评论(0) 推荐(0) 编辑
摘要:Jinnie 看到莫名其妙的异或题,应该考虑按照位数处理。 这样我们分别考虑每一位的答案,需要先取模。 排序,让序列有了单调性,并且可以观察到,对于第k位只有两个数的和属于 [2k,2k+11][2k+1+2k,2k+22]才行 最后的右边界是什么东西?我们取模了啊. 阅读全文
posted @ 2021-11-05 06:48 Simex 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Miku 如果我们知道哪两个点可以用跑路机1s到达就好办了 怎么知道呢?如果两个点的距离可以为2k,那么一定有一个中转接点,到两个点的距离都是2k1,也就是如此了。 这样显然可以用floyd预处理出来距离 #include<iostream> #include<cstdio> #i 阅读全文
posted @ 2021-10-31 12:13 Simex 阅读(18) 评论(0) 推荐(0) 编辑
摘要:链接:Miku 位运算的好题 (对于位运算本蒟蒻来说太毒瘤了) 对于这题的数据范围,把八皇后的代码改一改是不够的,必须要用位运算 先上代码 #include<cstdio> #include<iostream> #include<cstdio> using namespace std; int n, 阅读全文
posted @ 2020-04-25 09:46 Simex 阅读(170) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示