![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AcWing
AEP_WYK
这个作者很懒,什么都没留下…
展开
-
数据结构之双链表
数组模拟法双链表同样可以用数组模拟, 只不过由于双链表比单链表多了一个指向前驱的指针,所以按照单链表中的单纯的一个ne[i]不足以表达整个链表的情况, 所以我们再引入一个l[i]数组用来表示i结点的前驱指针指向的结点下标,这里为了方便将ne[i]数组更名为r[i]。 notes:特别注意一点是我们用0结点来代替单链表中的头指针,1结点放在链表维度用来表示尾指针(好处是可以以o(1)的时间复杂...原创 2020-04-18 17:56:53 · 144 阅读 · 0 评论 -
数据结构之单链表
数组模拟链表e[i]表示结点的值, ne[i]表示结点的next指针指向的结点下标,idx用来记录结点实际分配的地址(物理地址)下标。(实际上,这种用数组模拟链表的方法就是数据结构中学的静态链表法)具体代码:// head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点int head, e[N], ne[N], idx;// 初始化...原创 2020-04-18 17:49:35 · 145 阅读 · 0 评论 -
你真的会二分搜索吗
二分问题的思考步骤:写一个check函数 判断check(mid)函数为true时mid落到了左半边还是右半边 更新区间比如图中如果找10的左区间,那么mid应该落在右半边,不断向左更新,直到找到左边界bool check_r(int mid, int x){ if(a[mid]>=x) return true; return false;}对应的...原创 2020-04-04 16:40:54 · 153 阅读 · 0 评论 -
99. 激光炸弹 【前缀和】
题目链接:https://www.acwing.com/problem/content/101/先说一下前缀和的概念:用途:主要用来计算,区间求和问题。一维前缀和: 已知一个数组 a1,a2,a3,a4,a5,a6,a7,a8,a9 . 对应的前缀和数组为b则 b0=0; b1 = a1; b2 = a1+a2; b3 = a1+a2+a3;...原创 2019-02-01 09:37:19 · 280 阅读 · 0 评论 -
100. IncDec序列 【差分+贪心】
题目链接:https://www.acwing.com/problem/content/102/先说一下差分的概念用途:主要用于给某一区间 加一个数,或减一个数 。o(1)的时间内完成差分,实际上就是前缀和的逆过程, 例如 已知前缀和数组 b, 那么它的差分数组 aa1 = b1;a2 = b2-b1;a3 = b3-b2;a4 = b4-b3;.....an...原创 2019-02-01 09:59:04 · 453 阅读 · 0 评论 -
103、电影(CF670C —— Cinema)【unordered_map离散化】
题目链接:https://www.acwing.com/problem/content/105/因为题目中language的范围为 0->1e9;所以肯定是不能开普通数组的我们用unordered_map离散化 (map会超时)#include<stdio.h>#include<iostream>#include<map>#includ...原创 2019-02-03 14:44:43 · 369 阅读 · 0 评论 -
费解的开关【二进制枚举】
题目链接:https://www.acwing.com/problem/content/97/主要思想:枚举第一行的状态,每一行都可以确定下一行的状态,最后判断是否最后一行灯被全部点亮即可。#include<stdio.h>#include<iostream>#include<algorithm>#include<math.h>#i...原创 2019-01-29 10:56:29 · 140 阅读 · 0 评论