![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法笔记
文章平均质量分 64
门前花开满田岸
这个作者很懒,什么都没留下…
展开
-
AcWing 826. 单链表————用数组模拟单链表
题目描述实现一个单链表,链表初始为空,支持三种操作:向链表头插入一个数;删除第 kkk 个插入的数后面的数;在第 kkk 个插入的数后插入一个数。现在要对该链表进行 MMM 次操作,进行完所有操作后,从头到尾输出整个链表。**注意:**题目中第 kkk 个插入的数并不是指当前链表的第 kkk 个数。例如操作过程中一共插入了 nnn 个数,则按照插入的时间顺序,这 nnn 个数依次为:第 111 个插入的数,第 222 个插入的数,…第 nnn 个插入的数。输入格式第一行包含整数 MMM,表示原创 2022-01-19 23:43:46 · 160 阅读 · 0 评论 -
AcWing 801. 二进制中1的个数
题目描述给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。输入格式第一行包含整数n。第一行包含整数 n。第一行包含整数n。第二行包含n个整数,表示整个数列。第二行包含 n 个整数,表示整个数列。第二行包含n个整数,表示整个数列。输出格式共一行,包含n个整数,其中的第i个数表示数列中的第i个数的二进制表示中1的个数。共一行,包含 n 个整原创 2022-01-19 23:41:18 · 525 阅读 · 0 评论 -
AcWing 802. 区间和
题目描述假定有一个无限长的数轴,数轴上每个坐标上的数都是0。假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。假定有一个无限长的数轴,数轴上每个坐标上的数都是0。现在,我们首先进行n次操作,每次操作将某一位置x上的数加c。现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。现在,我们首先进行n次操作,每次操作将某一位置x上的数加c。接下来,进行m次询问,每个询问包含两个整数l和r,你需要求出在区间[l,r]之间的所有数的和。接下来,进行 m 次询问,每个询问包含两个整数 l 和原创 2022-01-19 23:39:21 · 61 阅读 · 0 评论 -
AcWing 799. 最长连续不重复子序列
题目描述给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数n。第一行包含整数 n。第一行包含整数n。第二行包含n个整数(均在0∼105范围内),表示整数序列。第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。第二行包含n个整数(均在0∼105范围内),表示整数序列。输出原创 2022-01-19 23:33:14 · 551 阅读 · 0 评论 -
AcWing 803. 区间合并
题目描述给定n个区间[li,ri],要求合并所有有交集的区间。给定 n 个区间 [li,ri],要求合并所有有交集的区间。给定n个区间[li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。注意如果在端点处相交,也算有交集。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。输出合并完成后的区间个数。输出合并完成后的区间个数。例如:[1,3]和[2,6]可以合并为一个区间[1,6]。例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。例如:[1,3]和[2,原创 2022-01-19 23:30:06 · 57 阅读 · 0 评论 -
AcWing 798. 差分矩阵————易理解代码
题目描述输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中(x1,y1)和(x2,y2)表示一个子矩阵的左上角坐标和右下角坐标。x1,y1,x2,y2,c,其中 (x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。x1,y1,x2,y2,c,其中(x1,y1)和(x2,y2)表示一个子矩阵的左上角原创 2022-01-13 22:48:32 · 168 阅读 · 0 评论 -
AcWing 797. 差分
题目描述输入一个长度为n的整数序列。输入一个长度为 n 的整数序列。输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l,r,c,表示将序列中[l,r]之间的每个数加上c。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。接下来输入m个操作,每个操作包含三个整数l,r,c,表示将序列中[l,r]之间的每个数加上c。请你输出进行完所有操作后的序列。请你输出进行完所有操作后的序列。请你输出进行完所有操作后的序列。输入格式第一行包原创 2022-01-13 22:44:34 · 159 阅读 · 0 评论 -
AcWing 796. 子矩阵的和
题目描述输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。对于每个询问输出子矩阵中所有数的和。对于每个询问输出子矩阵中所有数的原创 2022-01-12 23:56:43 · 143 阅读 · 0 评论 -
AcWing 795. 前缀和
题目描述输入一个长度为 nnn 的整数序列。接下来再输入 mmm 个询问,每个询问输入一对 l,rl,rl,r。对于每个询问,输出原序列中从第 lll 个数到第 rrr 个数的和。输入格式第一行包含两个整数 nnn 和 mmm。第二行包含 nnn 个整数,表示整数数列。接下来 mmm 行,每行包含两个整数 lll 和 rrr,表示一个询问的区间范围。输出格式共 m 行,每行输出一个询问的结果。数据范围1≤l≤r≤n,1≤l≤r≤n,1≤l≤r≤n,1≤n,m≤100000,1≤n,m原创 2022-01-12 23:50:24 · 244 阅读 · 0 评论 -
AcWing 794. c++ 实现高精度除法
题目描述给定两个非负整数(不含前导 0) AAA,BBB,请你计算 A/BA/BA/B 的商和余数。输入格式共两行,第一行包含整数 AAA,第二行包含整数 BBB。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤100000,1≤A的长度≤100000,1≤A的长度≤100000,1≤B≤10000,1≤B≤10000,1≤B≤10000,B一定不为0B 一定不为 0B一定不为0输入样例:72输出样例:31C++ 代码#include &原创 2022-01-12 23:47:35 · 100 阅读 · 0 评论 -
AcWing 793. c++ 实现高精度乘法:大数 * 大数 与 大数 * 小数
题目描述给定两个非负整数(不含前导 0) AAA 和 BBB,请你计算 A×BA×BA×B 的值。输入格式共两行,第一行包含整数 AAA,第二行包含整数 BBB。输出格式共一行,包含 A×BA×BA×B 的值。数据范围1≤A的长度≤100000,1≤A的长度≤100000,1≤A的长度≤100000,0≤B≤100000≤B≤100000≤B≤10000输入样例:7899536489008978996输出样例:7031296695057374544大数 * 小数C++ 代原创 2022-01-12 23:44:47 · 149 阅读 · 0 评论 -
AcWing 792. c++ 实现高精度减法
题目描述给定两个正整数(不含前导 0),计算它们的差,计算结果可能为负数。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的差。数据范围1≤整数长度≤1051≤整数长度≤10^51≤整数长度≤105输入样例:3211输出样例:21算法1C++ 代码#include <iostream>#include <vector>#include <algorithm>using namespace std;//用于判断A与B原创 2022-01-12 23:40:52 · 128 阅读 · 0 评论 -
AcWing 791. c++ 实现高精度加法
题目描述给定两个正整数(不含前导 0),计算它们的和。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的和。数据范围1≤整数长度≤1000001≤整数长度≤1000001≤整数长度≤100000输入样例:1223输出样例:35算法1C++ 代码#include <iostream>#include <vector>using namespace std;vector<int> add(vector<int>原创 2022-01-12 23:36:58 · 81 阅读 · 0 评论 -
AcWing 787. 归并排序
题目描述给定你一个长度为 nnn 的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 nnn。第二行包含 nnn 个整数(所有整数均在 1∼1091∼10^91∼109 范围内),表示整个数列。输出格式输出共一行,包含 nnn 个整数,表示排好序的数列。数据范围1≤n≤1000001≤n≤1000001≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5算法(归并排序)原创 2022-01-09 22:24:59 · 59 阅读 · 0 评论 -
AcWing 785. 快速排序
题目描述给定你一个长度为 nnn 的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 nnn。第二行包含 nnn 个整数(所有整数均在 1∼1091∼10^91∼109 范围内),表示整个数列。输出格式输出共一行,包含 nnn 个整数,表示排好序的数列。数据范围1≤n≤1000001 ≤ n ≤1000001≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5算法(快速排序原创 2022-01-09 22:18:50 · 69 阅读 · 0 评论 -
AcWing 790. 数的三次方根
题目描述给定一个浮点数 nnn,求它的三次方根。输入格式共一行,包含一个浮点数 nnn。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留 6 位小数。数据范围−10000≤nnn≤10000输入样例:1000.00输出样例:10.000000算法浮点数二分法 O(logn)O(logn)O(logn)C++ 代码#include <iostream>using namespace std;int main () {原创 2022-01-08 16:34:10 · 449 阅读 · 0 评论 -
AcWing 789. 数的范围(二分法)
题目描述给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回 -1 -1。输入格式第一行包含整数 n 和 q,表示数组长度和询问个数。第二行包含 n 个整数(均在 1∼10000 范围内),表示完整数组。接下来 q 行,每行包含一个整数 k,表示一个询问元素。输出格式共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回 -1 -原创 2022-01-07 21:23:21 · 115 阅读 · 0 评论