12月3日训练笔记

来源:互联网 发布:java中的集合类 编辑:程序博客网 时间:2024/06/06 03:18

数据库考试告一段落,因为准备考试,上一次周四的训练笔记也忘记写了。。。

周六全身心投入到刷题中去了,感觉状态dp的题目还是非常难得。尤其是将其转换为二进制关于其中的一些位运算,处理起来不是那么容易,现在见到总结一下常见的位运算:

1.’&’符号,x&y,会将两个十进制数在二进制下进行与运算,然后返回其十进制下的值。例如3(11)&2(10)=2(10)。
2.’|’符号,x|y,会将两个十进制数在二进制下进行或运算,然后返回其十进制下的值。例如3(11)|2(10)=3(11)。
3.’^’符号,x^y,会将两个十进制数在二进制下进行异或运算,然后返回其十进制下的值。例如3(11)^2(10)=1(01)。
4.’<<’符号,左移操作,x<<2,将x在二进制下的每一位向左移动两位,最右边用0填充,x<<2相当于让x乘以4。相应的,’>>’是右移操作,x>>1相当于给x/2,去掉x二进制下的最有一位。
5.(k&(1<<i) 取k的第i位 - 是否为0,不为0则为真,为0则假。
6.把一个数字二进制下最靠右的第一个1去掉。方法:x=x&(x-1);

状态dp转换为二进制思想来解决是问题的关键。有的题目还会与其他的一些知识点来解决,比如dfs,所以状态dp还是具有一定的综合性!!下一周好好刷题!感觉压力山大,队员们一个比一个努力,自己水平本来

就不怎么样,如果再不比别人努力的话,真的是会被越甩越远,差距也会越来越大!所以:勤能补拙。多练,多看,多做!加油!做出成绩,加油!

原创粉丝点击