当前位置: 首页 > news >正文

石龙镇网站仿做网站制作加双链接怎么做

石龙镇网站仿做,网站制作加双链接怎么做,wordpress管理员改为投稿者,百度seo站长工具位运算 Part 1:基础 左移:左移一位,相当于某数乘以 2 2 2。左移 x x x位,相当于该数乘以 2 x 2^x 2x。 右移:右移一位,相当于某数除以 2 2 2。右移 x x x位,相当于该数除以 2 x 2^x 2x。 与运算&…

位运算

Part 1:基础

  1. 左移:左移一位,相当于某数乘以 2 2 2。左移 x x x位,相当于该数乘以 2 x 2^x 2x

  2. 右移:右移一位,相当于某数除以 2 2 2。右移 x x x位,相当于该数除以 2 x 2^x 2x

  3. 与运算:按位进行“与”运算,两数同一位都为 1 1 1 时结果为 1 1 1,否则为 0 0 0 0 0 0 与任何数都为 0 0 0

  4. 或运算:按位进行“或”运算,两数同一位都为 0 0 0 时结果为 0 0 0,否则为 1 1 1

  5. 非运算:按位取反。

Part 2:异或

简介

异或操作,是指两个数或者多个数之间进行的一种相同为 0 0 0、不同为 1 1 1的位运算。

异或操作通常用 ⊕ \oplus ^表示。

运算律
  • 0 ⊕ n = n 0\oplus n=n 0n=n n ⊕ n = 0 n\oplus n=0 nn=0

  • 结合律

  • 交换律:一堆数在一起进行异或操作时,可以按任意顺序进行。

应用
  • 交换两个数:a=a^b,b=a^b,a=a^b;

  • 找到某个数

    一个数组中只有一个数出现了奇数次,其余数都出现了偶数次,如何找到这个出现奇数次的数?

    根据异或运算的性质,一个数与自己异或等于零,一个数与 0 0 0异或等于本身可知,只需将数组中的所有数进行异或操作即可将出现偶数次的数消掉,得到出现奇数次的。

  • i ⊕ 1 i\oplus 1 i1 表示 i i i 的反向边。

    证明:对于一个数 n n n,如果它是奇数,那么它异或 1 1 1 等于 n − 1 n-1 n1;如果它是偶数,那么它异或 1 1 1 等于 n + 1 n+1 n+1

    对于 Tarjan 求边双连通分量,有一段标记是 isb[i]=isb[i^1]=1(标记该边和它的反向边是桥 bridge),插入的时候是成对插入的( ( 0 , 1 ) 、 ( 1 , 2 ) 、 ⋯ 、 ( 2 k , 2 k + 1 ) (0,1)、(1,2)、\cdots、(2k,2k+1) (0,1)(1,2)(2k,2k+1))。

Part 3:lowbit

定义

lowbit ( n ) \text{lowbit}(n) lowbit(n) 定义为非负整数 n n n在二进制表示下“最低位的 1 1 1及其后面的所有 0 0 0”构成的数值。

举个栗子, n = 10 n=10 n=10 的二进制表示为 ( 1010 ) 2 (1010)_2 (1010)2,则 lowbit ( n ) = 2 = ( 10 ) 2 \text{lowbit}(n)=2=(10)_2 lowbit(n)=2=(10)2

公式

lowbit ( n ) = n & ( ∼ n + 1 ) = n & ( − n ) \text{lowbit}(n)=n\&(\sim n+1)=n\&(-n) lowbit(n)=n&(n+1)=n&(n)

应用

lowbit \text{lowbit} lowbit运算配合Hash,可以找出整数二进制表示下所有是 1 1 1的位,时间复杂度与 1 1 1的个数同级。

实现:不断把 n n n 赋值为 n − lowbit ( n ) n-\text{lowbit}(n) nlowbit(n),直至 n = 0 n=0 n=0

举个栗子: n = 9 = ( 1001 ) 2 n=9=(1001)_2 n=9=(1001)2 lowbit ( 9 ) = 1 \text{lowbit}(9)=1 lowbit(9)=1。把 n n n 赋值为 9 − lowbit ( n ) = 8 = ( 1000 ) 2 9-\text{lowbit}(n)=8=(1000)_2 9lowbit(n)=8=(1000)2 8 − lowbit ( 8 ) = 0 8-\text{lowbit}(8)=0 8lowbit(8)=0,停止循环。在这个过程中减掉了 1 1 1 8 8 8,即 n n n 每一位上的 1 1 1 后补 0 0 0 后的数值。取 log ⁡ 2 1 \log_21 log21 log ⁡ 2 8 \log_28 log28,就可以知道 n n n 的第 1 1 1 位和第 3 3 3 位是 1 1 1

C++中的 log2 函数效率不够高,所以我们要预处理一个数组,用 Hash 代替 log ⁡ \log log 运算。

n n n较小时,可以建立一个数组 h,令 h [ 2 k ] = k h[2^k]=k h[2k]=k

const int maxn=1<<20;
int h[maxn+5];
for(int i=1;i<=20;i++) h[1<<i]=i;
while(cin>>n)
{while(n>0) cout<<h[n&-n]<<' ',n-=n&-n;cout<<endl;
}

还有一种方法,建立一个长度为 37 37 37 的数组 h,令 h [ 2 k m o d 37 ] = k h[2^k\bmod 37]=k h[2kmod37]=k ∀ k ∈ [ 0 , 35 ] \forall k\in[0,35] k[0,35] 2 k m o d 37 2^k\bmod 37 2kmod37 互不相等,可以取遍 1 ∼ 36 1\sim36 136)。

int h[37];
for(int i=0;i<36;i++) h[(1ll<<i)%37]=i;
while(cin>>n)
{while(n>0) cout<<h[(n&-n)%37]<<' ',n-=n&-n;cout<<endl;
}

lowbit 运算还可用于树状数组。

更多函数
  • int __builtin_ctz(unsigned int x)

    int __builtin_ctzll(unsigned long long x)

    返回 x x x 的二进制表示下最低位的 1 1 1 后边有多少个 0 0 0

  • int __builtin_popcount(unsigned int x)

    int __builtin_popcountll(unsigned long long x)

    返回 x x x 的二进制表示下有多少位为 1 1 1

常见操作

  • 查询一个数二进制下的第 i i i 为是不是 1 1 1

    x>>i&1,如果第 i i i 位是 1 1 1 这个值是 1 1 1,否则是 0 0 0

    常见用途: 01 01 01 字典树、线性基

  • 枚举子集

    常用于状压。

    for(int S1=S;S1;S1=(S1-1)&S) S2=S^S1;
    

    其中 S S S 是全集, S 1 S_1 S1 是子集, S 2 S_2 S2 S 1 S_1 S1 的补集。

  • 改变 x x x 的第 i i i

    x|=1<<(i-1);//将x第i位变成1
    x&=~(1<<(i-1));//将x第i位变成0
    
  • 查询 1 1 1 的个数

    int popcount(int n)
    {int cnt=0;while(n) n&=(n-1),cnt++;return cnt;
    }
    
http://www.yayakq.cn/news/429407/

相关文章:

  • 网站建设代码标签大全做一个在线交易网站需要多少钱
  • 备案网站地址山东住房和城乡建设厅网站主页
  • 九江有没有做网站的公司上海网站营销推广
  • 哪个网站专门做邮轮旅游的手机页面
  • 网站开发与管理期末考试温州注册网络公司
  • 广西做网站公司排名河南建筑材料价格信息网
  • 微信云网站用什么做贵州省建设监理协会网站是什么
  • 建设信息门户网站wordpress代码优化插件
  • 网站建设3要素东城区网站建设
  • 如何让网站上线网站恶意注册
  • 长沙网站制作价格网站蜘蛛怎么看
  • 外贸网站的特点asp.net wordpress
  • 建网站 服务器需要安装 tomcat企业网站的开发背景
  • 北京网站建设类岗位单页移动网页建站教程
  • 大型门户网站多少钱360crm客户管理系统
  • 做网站需要的法律知识wordpress文章不能回复
  • 网站都需要备案吗欧普家居设计家官网
  • 网站建设公司哪家好 干净磐石网络网站seo快速优化技巧
  • 鸿运通网站建设口碑seo推广公司
  • 建立网站外链常用的渠道有哪些公司简介模板免费word
  • 建设部网站最新消息wordpress网站注册不了
  • 安顺住房和城乡建设部网站广告设计公司怎么找业务
  • 网站维护工程师工资网站标题和关键词有什么区别
  • 厦门建网站的公司秦皇岛seo排名
  • 盘锦建设资质网站做网站 除了域名
  • 网站界面设计软件网站编辑面试
  • 网站内容分析网站做聚合是啥意思
  • 网站正在建设中色天使优化关键词方法
  • 优化网站结构企业官方网站制作
  • 谁有做网站的朋友的V信制作手机app用什么语言