
算法训练day
简单算法训练
CodeByZhou
这个作者很懒,什么都没留下…
展开
-
日常——二进制中1的个数
共一行,包含n个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中1的个数。给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。第二行包含n个整数,表示整个数列。0≤数列中元素的值≤109。原创 2022-09-20 09:34:04 · 162 阅读 · 0 评论 -
日常——判断子序列
子序列指序列的一部分项按原有次序排列而得的序列,例如序列 {a1,a3,a5} 是序列 {a1,a2,a3,a4,a5}的一个子序列。给定一个长度为 n 的整数序列 a1,a2,…,an 以及一个长度为 m 的整数序列 b1,b2,…如果 a 序列是 b 序列的子序列,输出一行 Yes。第二行包含 n 个整数,表示 a1,a2,…第三行包含 m 个整数,表示 b1,b2,…请你判断 a 序列是否为 b 序列的子序列。第一行包含两个整数 n,m。原创 2022-09-20 09:20:15 · 220 阅读 · 0 评论 -
日常——数组元素目标和
给定两个升序排序的有序数组A和B,以及一个目标值x。第一行包含三个整数n,m,x,分别表示A的长度,B的长度以及目标值x。请你求出满足A[i] + B[j] = x的数对(i, j)。共一行,包含两个整数 i 和 j。第二行包含n个整数,表示数组A。第三行包含m个整数,表示数组B。数组长度不超过100000。同一数组内元素各不相同。1≤数组元素≤109。原创 2022-09-20 09:06:49 · 91 阅读 · 0 评论 -
日常——最长连续不重复子序列
给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。第二行包含n个整数(均在0~100000范围内),表示整数序列。共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。原创 2022-09-20 08:52:56 · 163 阅读 · 0 评论 -
日常——差分矩阵
输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数x1, y1, x2, y2, c,其中(x1, y1)和(x2, y2)表示一个子矩阵的左上角坐标和右下角坐标。接下来q行,每行包含5个整数x1, y1, x2, y2, c,表示一个操作。共 n 行,每行 m 个整数,表示所有操作进行完毕后的最终矩阵。每个操作都要将选中的子矩阵中的每个元素的值加上c。接下来n行,每行包含m个整数,表示整数矩阵。请你将进行完所有操作后的矩阵输出。第一行包含整数n,m,q。原创 2022-08-19 19:18:14 · 108 阅读 · 0 评论 -
日常——差分数组
接下来输入m个操作,每个操作包含三个整数l, r, c,表示将序列中[l, r]之间的每个数加上c。接下来m行,每行包含三个整数l,r,c,表示一个操作。共一行,包含n个整数,表示最终序列。第二行包含n个整数,表示整数序列。请你输出进行完所有操作后的序列。输入一个长度为n的整数序列。第一行包含两个整数n和m。原创 2022-08-19 18:44:23 · 168 阅读 · 0 评论 -
日常——子矩阵的和
输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x2, y2,表示一个子矩阵的左上角坐标和右下角坐标。接下来q行,每行包含四个整数x1, y1, x2, y2,表示一组询问。接下来n行,每行包含m个整数,表示整数矩阵。对于每个询问输出子矩阵中所有数的和。共q行,每行输出一个询问的结果。第一行包含三个整数n,m,q。原创 2022-08-19 17:24:28 · 372 阅读 · 0 评论 -
日常——前缀和
接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。对于每个询问,输出原序列中从第l个数到第r个数的和。接下来再输入m个询问,每个询问输入一对l, r。第二行包含n个整数,表示整数数列。共m行,每行输出一个询问的结果。输入一个长度为n的整数序列。第一行包含两个整数n和m。原创 2022-08-19 14:01:31 · 98 阅读 · 0 评论 -
日常——高精度除法
给定两个非负整数A,B,请你计算 A / B的商和余数。共两行,第一行输出所求的商,第二行输出所求余数。共两行,第一行包含整数A,第二行包含整数B。原创 2022-08-18 18:43:26 · 94 阅读 · 0 评论 -
日常——高精度乘法
给定两个正整数A和B,请你计算A * B的值。共两行,第一行包含整数A,第二行包含整数B。共一行,包含A * B的值。原创 2022-08-18 18:37:06 · 108 阅读 · 0 评论 -
日常——高精度减法
给定两个正整数,计算它们的差,计算结果可能为负数。共两行,每行包含一个整数。共一行,包含所求的差。原创 2022-08-18 18:19:23 · 111 阅读 · 0 评论 -
日常——高精度加法
给定两个正整数,计算它们的和。共两行,每行包含一个整数。共一行,包含所求的和。原创 2022-08-18 18:01:44 · 104 阅读 · 0 评论 -
日常——三次方根
共一行,包含一个浮点数,表示问题的解,结果保留六位小数。给定一个浮点数n,求它的三次方跟。共一行,包含一个浮点数n。原创 2022-08-18 11:47:42 · 361 阅读 · 0 评论 -
日常——查询数的范围
对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。第二行包含n个整数(均在1~10000范围内),表示完整数组。给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。共q行,每行包含两个整数,表示所求元素的起始位置和终止位置。接下来q行,每行包含一个整数k,表示一个询问元素。如果数组中不存在该元素,则返回“-1 -1”。第一行包含整数n和q,表示数组长度和询问个数。如果数组中不存在该元素,则返回“-1 -1”。...原创 2022-08-18 11:42:53 · 152 阅读 · 0 评论 -
日常——逆序对的数量
逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;用归并就可以,如果一个连续数组部分开头大于结尾,那么中间的都可以两两组合逆序对,这样从。给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。第二行包含 n 个整数,表示整个数列。第一行包含整数n,表示数列的长度。输出一个整数,表示逆序对的个数。...原创 2022-08-18 11:39:43 · 125 阅读 · 0 评论 -
日常——归并排序
请你使用快速排序对这个数列按照从小到大进行排序。输出共一行,包含 n 个整数,表示排好序的数列。第二行包含 n 个整数(所有整数均在。输入共两行,第一行包含整数 n。给定你一个长度为n的整数数列。并将排好序的数列按顺序输出。范围内),表示整个数列。...原创 2022-08-18 11:33:54 · 72 阅读 · 0 评论 -
练习——第K个数
给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。输入共两行,第一行包含两个整数 n 和 k。第二行包含 n 个整数(所有整数均在。输出一个整数,表示数列的第k小数。范围内),表示整个数列。...原创 2022-08-18 11:31:36 · 120 阅读 · 0 评论 -
训练——快速排序
请你使用快速排序对这个数列按照从小到大进行排序。输出共一行,包含 n 个整数,表示排好序的数列。第二行包含 n 个整数(所有整数均在。输入共两行,第一行包含整数 n。给定你一个长度为n的整数数列。并将排好序的数列按顺序输出。范围内),表示整个数列。...原创 2022-08-18 11:27:43 · 78 阅读 · 0 评论