【模板】滑动窗口 给定一个大小为n≤106的数组。 有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。 您只能在窗口中看到k个数字。 每次滑动窗口向右移动一个位置。 以下是一个例子: 该数组为[1 3 -1 -3 5 3 6 7],k为3。 窗口位置 最小值 最大值 [1 3 -1] -3 5 3 6 7 -1 3 1 [3 -1 -3] 5 3 6 7 -3 3 1 3 [-1 -3 2021-02-10 模板 #单调队列
【模板】单调栈 给定一个长度为N的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出-1。 输入格式第一行包含整数N,表示数列长度。 第二行包含N个整数,表示整数数列。 输出格式共一行,包含N个整数,其中第i个数表示第i个数的左边第一个比它小的数,如果不存在则输出-1。 数据范围1≤N≤10^51≤数列中元素≤10^9 输入样例1253 4 2 7 5 输出样例1-1 3 -1 2 2 模板12345 2021-02-10 模板 #单调栈
【模板】模拟队列 实现一个队列,队列初始为空,支持四种操作: (1) “push x” – 向队尾插入一个数x; (2) “pop” – 从队头弹出一个数; (3) “empty” – 判断队列是否为空; (4) “query” – 查询队头元素。 现在要对队列进行M个操作,其中的每个操作3和操作4都要输出相应的结果。 输入格式第一行包含整数M,表示操作次数。 接下来M行,每行包含一个操作命令,操作命令为”pus 2021-02-10 模板
【模板】模拟栈 实现一个栈,栈初始为空,支持四种操作: (1) “push x” – 向栈顶插入一个数x; (2) “pop” – 从栈顶弹出一个数; (3) “empty” – 判断栈是否为空; (4) “query” – 查询栈顶元素。 现在要对栈进行M个操作,其中的每个操作3和操作4都要输出相应的结果。 输入格式第一行包含整数M,表示操作次数。 接下来M行,每行包含一个操作命令,操作命令为”push x” 2021-02-10 模板
【模板】双链表 实现一个双链表,双链表初始为空,支持5种操作: (1) 在最左侧插入一个数; (2) 在最右侧插入一个数; (3) 将第k个插入的数删除; (4) 在第k个插入的数左侧插入一个数; (5) 在第k个插入的数右侧插入一个数 现在要对该链表进行M次操作,进行完所有操作后,从左到右输出整个链表。 注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序 2021-02-10 模板
【模板】单链表 实现一个单链表,链表初始为空,支持三种操作: (1) 向链表头插入一个数; (2) 删除第k个插入的数后面的数; (3) 在第k个插入的数后插入一个数 现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。 注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…第n个插入的数。 2021-02-10 模板
【模板】区间合并 给定 n 个区间 [li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1,3]和[2,6]可以合并为一个区间[1,6]。 输入格式第一行包含整数n。 接下来n行,每行包含两个整数 l 和 r。 输出格式共一行,包含一个整数,表示合并区间完成后的区间个数。 数据范围1≤n≤100000,−109≤ l ≤ r ≤109 输入样例123 2021-02-08 模板
【模板】区间和 假定有一个无限长的数轴,数轴上每个坐标上的数都是0。 现在,我们首先进行 n 次操作,每次操作将某一位置x上的数加c。 接下来,进行 m 次询问,每个询问包含两个整数l和r,你需要求出在区间[l, r]之间的所有数的和。 输入格式第一行包含两个整数n和m。 接下来 n 行,每行包含两个整数x和c。 再接下里 m 行,每行包含两个整数l和r。 输出格式共m行,每行输出一个询问中所求的区间内数字和。 2021-02-08 模板
【模板】二进制中1的个数 给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。 输入格式第一行包含整数n。 第二行包含n个整数,表示整个数列。 输出格式共一行,包含n个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中1的个数。 数据格式1≤n≤100000,0≤数列中元素的值≤109 输入样例1251 2 3 4 5 输出样例11 1 2 1 2 模板12345678910111213141 2021-02-08 模板
【模板】最长连续不重复子序列 给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。 输入格式第一行包含整数n。 第二行包含n个整数(均在0~100000范围内),表示整数序列。 输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。 数据格式1≤n≤100000 输入样例1251 2 2 3 5 输出样例13 模板123456789101112131415161718192021 2021-02-08 模板