-
个人简介
冲刺600道AC
(눈_눈)
图(关系结构)
由点和边构成的集合
- 无向图
- 有向图
带权图
度
出度:从一个点出去的边的数量
入度:进入一个点的边的数量
连通图
概念:一个图中所有点之间至少存在一条路径(路径:一个点有一条路到达另一个点)的图
无向图:连通图
有向图
-
弱连通图:将此图转换为无向图后,是连通状态,即为若连通
-
强连通图:有向图中任意一点都存在一条到达其余所有点的路径
完全图
一张图中,任意两点之间均有着一条直接连接的边
树
概念:只有n-1(n:点的数量)条边的连通图
点和点之间的关系
- 父子
- 兄弟
- 祖孙
度:一个点的儿子数量
节点类型
- 根结点
- 分支节点
- 叶子节点
完全二叉树
概念:按照每一层节点依次填充的顺序的二叉树,是完全二叉树
特性:
- n层的二叉树,最多共有** 2n−12n−1个节点**
- 二叉树第n层,最多有个2n−12n**−1节点**
满二叉树
概念:n层的二叉树中所有分支节点的度数都为2
位运算符
左移运算:
<<
用法:** **
x<<y
作用:将表示** x 的二进制数的每一位左移 **y 位,移出去的数就丢掉,空余地方用 0 补位。
例如:一个二进制数 10101011 将其左移 3 位,得到 01011000。
右移运算:
>>
用法:
x>>y
作用:将表示** x 的二进制数的每一位右移 **y 位,移出去的数就丢掉,空余地方用 0 补位。
例如:一个二进制数 10101011 将其右移 3 位,得到 00010101。
按位与运算:
&
用法:
x&y
作用:按位进行与运算。
例如:1101 和 0011 进行与运算就为:0001。
按位或运算:
|
用法:
x|y
作用:按位进行或运算。
例如:1101 和 0011 进行或运算就为:1111。
按位异或运算:
^
用法:
x^y
作用:按位进行异或运算。
例如:1101 和 0011 进行异或运算就为:0001。
按位非运算:
~
用法:
~x
作用:按位进行非运算。
例如:1101进行非运算就为:0010。
状态压缩常用位运算符技巧
1.取出x的第k位:
y = x&(1<<(k-1));//i<<(k-1)能够做成一个第k为1,其余位为0,如:10000 的二进制数,再结合位与运算就能提取到变量x的二进制中第k位数为1还是0了,常用于判断
2.将x第k位取反:
x ^= (1<<(k-1));//通过左移制作一个10000般的二进制数,然后结合异或运算的特点,将变量x的二进制中第k位数取反
3.将x第k位变为1:
x |= (1<<(k-1));//通过左移制作一个10000般的二进制数,然后结合异或运算的特点,将变量x的二进制中第k位数修改为1
4.将x第k位变为0:
x &= (~(1<<(k-1))); //通过左移制作一个0001 0000般的二进制数,然后位非运算将其修改为1110 0000般的二进制数,最后结合位与运算的特点,将变量x的二进制中第k位数修改为0
5.将x最靠右的1去掉:
x = x&(x-1); //减去1会将数字二进制中末尾的1去掉,然后需要借位的地方全变为1,如原1010 0000,减去1后变成1001 1111,再进位与运算得1000 0000,相当于去掉末尾1
6.取出x最靠右的1:
y = x&(-x); //结合负数的二进制的特点,如数字20的二进制为0001 0100,-20的二进制为1110 1100,再进行位与运算能够获取到二进制数100也就是4,及提前数字x中包含的最大2的指数值
7.判断是否有两个连续的一:
if(x&(x<<1)) cout<<"YES"; //左移后的数字会进行偏移,如13的二进制0000 1101,左移后未0001 1010,再进行位与运算,连续的1会在偏移后有至少一个1重叠,让结果不为0,如果结果为0,说明不存在连续的1
8.枚举子集:
for( int x = sta ; x ; x = ( ( x - 1 )&sta) ) cout<<x;//通过技巧6的方式,如二进制:1011 0101,此循环能够枚举1011 0101、1011 0100、1011 0000、1010 0000、1000 0000这几个数据,即十进制:181、180、176、160、128这几个数字。
-
最近活动
- 蓝桥杯省赛真题练习 作业
- 语法竞速赛 IOI
- 蓝桥杯省赛练习第03周 作业
- 蓝桥杯省赛练习第02周 作业
- 蓝桥杯省赛练习第01周 作业
- 电子学会四级 作业
- 【蓝桥杯stema】202310真题练习 IOI
- 【蓝桥杯stema】202210真题练习 IOI
- 【CQMC】重庆小码王C++月赛 - 语法组(进阶练习) #2 IOI
- 【CQMC】重庆小码王C++月赛 - 算法组 #2 IOI
- 【CQMC】重庆小码王C++月赛 - 语法组 #2 IOI
- GESP二级练习题目 作业
- GESP一级练习题目 作业
- 【CQMC】重庆小码王C++月赛 - 算法组 #1 IOI
- 【CQMC】重庆小码王C++月赛 - 语法组 #1 IOI
- 【蓝桥杯stema】202303真题练习 IOI
- OI赛制练习 OI
- 一学期新生测评 IOI
- 2023年8月python语法新人测试题 IOI
- 2023年8月C++语法新人测试题 IOI
- 练习 IOI
- 金牌集训营编程测试-2-20230720 IOI
- 金牌集训营编程测试-2-20230716 IOI
- 暑期集训入营算法编程题目 IOI
- 暑期集训入营语法编程题目 IOI
- 暑期集训入营笔试题目 OI
- 蓝桥杯练习题 IOI
- 蓝桥杯省赛模拟题1 IOI
- 字符串综合练习 作业
- 数组映射 作业
- 蓝桥杯真题练习 IOI
- GESP-考试 IOI
- 蓝桥杯C++练习2 IOI
- 蓝桥杯C++练习1 IOI
- 电子学会考核一级模拟题-4 IOI
- 电子学会考核一级模拟题-3 IOI
- 电子学会考核一级模拟题-2 IOI
- 电子学会考核一级模拟题-1 IOI
- 等级考试一级练习 作业