算法区
树状数组
树状数组相较于二叉树删除了一些节点,注意到第一行删除的为偶数节点,而2存储的是1和2下面的节点的合(为其叶子节点),同时我们观察到每一层的节点等同于以其为根节点的叶子节点的合,而求这些节点全体的目标合使用不到的内容就会被删掉,剩下下面的节点共有n个,刚好和最初的数组大小相等。
我们可以观察到每层节点对应的末尾零的数量和层数相关,第n(从0开始)层对应二进制末位n个零。
前置知识lowbit :这代表将非负整数转换为二进制数然后取最低位1及其后面的0组成的数
区间查询ask:进行区间查询,查询某一区间的sum
我们发现sum[7]=t[7]+t[6]+t[4] ,我们进一步发现,6=7-lowbit(7),4=6-lowbit(6),所以我们可以通过不断的-lowbit操作来实现求和
求[L,R]之间的区间合,等同于求[1,R]-[1,L-1]
函数区
1.队列
定义:队列属于容器,允许先进先出,像排队一样
2.字符串
返回字符串的长度(字符数)。与 相同,返回字符串的长度。判断字符串是否为空。访问字符串中指定位置的字符。访问字符串中指定位置的字符(带边界检查)。返回从指定位置开始的子字符串。查找子字符串在字符串中的位置。从字符串末尾开始查找子字符串的位置。替换字符串中的部分内容。在字符串末尾添加内容。在指定位置插入内容。删除指定位置的字符或子字符串。清空字符串。返回指向字符数据的指针(C++11 及之后的版本)。比较两个字符串。查找第一个匹配任意字符的位置。查找最后一个匹配任意字符的位置。查找第一个不匹配任意字符的位置。查找最后一个不匹配任意字符的位置。
一些常用的使用(C++)
格式化
cin.get() 从键盘读入一个字符,可以读入逗号之类的
int(a) 强制类型转换
cout输出左侧补0:
cout输出右侧补0:
printf动态调整输出格式
数学计算
1.幂函数 pow(数,指数)
note:若要开方的话,后面要用小数 伽利略大学 java编程基础
常识区
方法区
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/24811.html