状压dp是将每种状态都压缩成用一个二进制串,然后利用位运算进行操作的dp,而凡是dp都需要进行状态转移 对于简单的dp问题只需要一个二维数组dp[ i ][ j ]就能解决 具体操作为首先把状态压缩为二进制串, 然后对第一行进行初始化, 再利用三个for循环进行状态转移(第一层for循环控制行的前进 ...
分类:
其他好文 时间:
2018-03-10 14:01:09
阅读次数:
327
Java运算符共包括这几种:算术运算符、比较运算符、位运算符、逻辑运算符、赋值运算符和其他运算符。(该图来自网络) 简单的运算符,就不过多介绍使用了,可自行测试。关于赋值运算,可以结合算术运算和位运算来简化代码。 理解自增自减运算符 自增自减分为前置和后置。例如:i++ ++i i-- --i。 要 ...
分类:
编程语言 时间:
2018-03-08 02:51:40
阅读次数:
258
可能你死了都不知道你会怎么死的 这些错误我以前都没注意,然后死了 卡常 模数用const 读入优化 空间 尽量多开一点点,比如用了长度为$n$的数组,空间就开$n+10$ 有位运算特别是$xor$和$or$时把数组开大一倍 精度 如果精度要求特别高,比如绝对误差$\leq{10}^{ 10}$,就要 ...
分类:
其他好文 时间:
2018-03-05 21:39:37
阅读次数:
190
可以直接用电脑自带的计算器将十进制转换为二进制,然后转换为十进制操作 与运算 & 与运算就是比较a和b的二进制如果位数都为1则算为1,如果不想同或都为0则算为0。然后再把答案的二进制转为10进制。 或运算 | 或运算正好与与运算相反,如果位数都不为0则算为1,否则算为0。 异或操作 异或操作是位数不... ...
分类:
编程语言 时间:
2018-03-05 15:35:54
阅读次数:
209
来源:http://blog.csdn.net/y990041769/article/details/38405063 RMQ算法,是一个快速求区间最值的离线算法,预处理时间复杂度O(n*log(n)),查询O(1),所以是一个很快速的算法,当然这个问题用线段树同样能够解决。 问题:给出n个数ai, ...
分类:
编程语言 时间:
2018-03-03 20:31:56
阅读次数:
176
A:编程填空:第i位替换 写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位和m的第i位相同,其他位和n相同。 请使用【一行代码】补全bitManipulation1函数使得程序能达到上述的功能 1 return m&(1<<i)|n&~(1<<i); B:编程填空:第i位取反 写出函数 ...
分类:
其他好文 时间:
2018-03-03 12:24:59
阅读次数:
154
前言 最近在看hashMap的源码,看到了一些位运算符,决定深入研究学习一下位运算符。 位运算 定义:程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。 位运算符 Java中的位运算符一共有:&、|、^ 、<<、>>、>>>、~这7种 1. ...
分类:
编程语言 时间:
2018-03-03 10:59:27
阅读次数:
176
自我总结 已学内容 C++基本语法与程序结构 使用visual studio2017编译和执行C++程序 C++数据类型·变量类型及变量作用域 C++常量 C++运算符——算术运算符,关系运算符,逻辑运算符,位运算符,赋值运算符,其他 C++基本输入输出 C++循环,判断语句 C++字符串(stri ...
分类:
其他好文 时间:
2018-03-02 22:09:36
阅读次数:
165
1.快速幂 原理:求a的b次方,将b转化为二进制数,该二进制位第i位的权是2^(i-1), 例如 11的二进制是1011 11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1 因此,我们将a¹¹转化为算 实现: 快速幂可以用位运算来实现 b and 1{也就是取b的二进制最低位(即第0位) ...
分类:
其他好文 时间:
2018-03-01 23:32:20
阅读次数:
246