zoukankan      html  css  js  c++  java
  • 近期一些学习的随笔

    把原来搞OI时置顶的游记都取消了

    算是标志自己走向全新的生活吧

    1.关于template的使用

    可以使函数中的形参不受变量类型的限制,照常编写我们的函数

    我把longlong int 或者自己定义的结构体类型扔进去都可以,不过往往需要正确地重载运算符

    2.关于负数的二进制问题

    对于有符号整型数x,-x的二进制表示为~(x-1),以下给出证明

    假设x在二进制下有8位,由于计算时溢出的位直接被忽略(或者看成每次计算都会取模256),那么-x等价于+256-x!

    又255-x == ~x,因此255-(x-1) == ~(x-1) 即256-x == ~(x-1)

    大功告成

    引申:树状数组的lowbit的证明

    树状数组有这样一个结构 i+=i&(-i) ,其中i&(-i)表示i的最低位的1表示的数

    这个在学OI的时候一直困扰着我 但因为感觉没啥用当时我也没管

    我们假设最低位的1在第x位

    有一个很显然的结论,当一个数-1时,i中最低位的1一定会变成0(先不考虑i=0)

    对于第x位,原来是1,i-1后变成0,取反又变回1,与运算后这一位的1被保留了下来

    对于低于x的位,原来都是0,i-1后一定都变成1,取反变成0,再与运算,这些位仍然是0

    对于高于x的位,取反再与一定是0

    最终我们成功保留了最低位的1!

  • 相关阅读:
    【Linux】Apache服务配置
    【Linux】LAMP环境搭建(简易版)
    【Linux】网络应用
    【Linux】系统管理
    【Linux】Linux(一)Linux常用命令
    【php】PDO
    【php】COOKIE和SESSION
    【php】面向对象(五)
    【php】面向对象(四)
    【php】面向对象(三)
  • 原文地址:https://www.cnblogs.com/guapisolo/p/13776752.html
Copyright © 2011-2022 走看看