03 2020 档案
摘要:一直以为C/C++中赋值语句的返回值是1(成功赋值)或者0(赋值出错),刚才在看书时发现书中有如下语句: while ((len = getline(line, MAXLINE)) 0) 意思是将(输入)行的长度赋给变量len,然后判断该长度是否大于0(即是否有正确的行输入,这里把仅有换行符的行长度
阅读全文
摘要:如何手写一个堆? 1. 插入一个数 2. 求集合当中的最小值 3. 删除最小值 4. 删除任意一个元素 5. 修改任意一个元素 堆的基本结构。 性质: 堆是一颗完全二叉树。按照序号来的 除了最后一层,其他都是满的 每一个点都是小于等于儿子 存储 用一维数组来存 x的左儿子是2x,x的右儿子是2x+1
阅读全文
摘要:Trie树 1. 字母的类型不会很多 开数组的时候str\[maxn][26] maxn是字符串长度,26是指每一层大概有几个位置 存储方法: 1. a节点有没有存,没有就创建一个 2. 在字母的结尾打一个标记表示有个单词 dijistra要用堆优化
阅读全文
摘要:title: kmp算法 tags: ACMer categories: String thumbnail: https://gss3.bdstatic.com/84oSdTum2Q5BphGlnYG/timg?wapp&quality=80&size=b150_150&subsize=20480&
阅读全文
摘要:栈的数组实现 1. 确定好栈底的元素 2. 边界条件 3. 变化过程 栈底是 1 栈底是0 队尾是 1 用栈来存储左边的所有元素,找到了其实就是把那个元素pop出来(有些元素永远不会被输出出来) 把逆序的点全部删掉,直到不是逆序的 图形理解 变成了一个严格单调上升的序列 cpp include in
阅读全文
摘要:应用都可以用英文 为什么要用数组模拟 1. 效率原因 2. new Node(); // 非常慢,不会使用动态链表的形式 3. 十万个节点会超时 4. 如果直接初始化n个节点其实也是可以的 单链表 解题思路: 最主要还是理解三个操作: 1. add 2. remove 3. add_to_head
阅读全文
摘要:https://blog.csdn.net/qq_44786250/article/details/100056975 unique返回尾坐标 解题思路 要算某个区间的和,直接使用前缀和来做就可以了 但是当这些区间的点中间很多个0的话,我们还是需要把他进行离散化 就是把原来的坐标映射到另外一个坐标当
阅读全文
摘要:区间合并 解题思想: 首先把所有的区间从左到右排序 然后把所有可能面临的区间合并的情况列出来 1. 区间左边是对齐的(合并最大的) 1. 区间右边小于上一个区间右边 2. 区间右边大于上一个区间右边 2. 区间右边是下一个区间左边的(需要合并,且多加一个) 因为处理的是区间,所以用pair来存比较好
阅读全文

浙公网安备 33010602011771号