![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法
基础算法 python
zheshui1823
这个作者很懒,什么都没留下…
展开
-
逆序对数量(基于归并排序python3
p2_2逆序对数量(基于归并题目:https://www.acwing.com/activity/content/problem/content/822/#逆序对:也就是严格下降【矩阵求行列式有这个东西#高等代数的里面有一个性质,一个逆序数对交换等于xxx#当一列数是倒序,逆序对最多有n+(n-1)+...+1=n(n+1)/2#分置的思路#归并:1.(L,R)-->[L,mid],[mid+1,R]2.递归排序两个子区间3.归并成一个有序序列#2路归并:把两个已经有序的序列合并成一原创 2022-05-05 12:37:11 · 609 阅读 · 0 评论 -
前缀和与差分——前缀和O(n)
p5_1_前缀和与差分——前缀和O(n)题目输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数数列。接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。输出格式共 m 行,每行输出一个询问的结果。数据范围1≤l≤r≤n,1≤n,m≤100000,−1000≤数列中元素的值≤1000输入样例:5原创 2022-05-09 13:05:47 · 184 阅读 · 0 评论 -
数据结构-自我模板 python
数据结构-自我模板 python原创 2022-06-21 18:01:02 · 63 阅读 · 2 评论 -
高精度_除法 python3
p4_4_高精度_除法题目给定两个非负整数(不含前导 0) A,B,请你计算 A/B 的商和余数。输入格式共两行,第一行包含整数 A,第二行包含整数 B。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤100000,1≤B≤10000,B 一定不为 0输入样例:72输出样例:31# A3 A2 A1 A0#/ b#=商+余数!!!两个哈 前面的加减乘都是从最低位算,这里是从最高位算 所以如果题目就只有除法 正着存储会好一点原创 2022-05-09 09:42:21 · 450 阅读 · 0 评论 -
高精度_乘法 python3
p4_3_高精度_乘法题目:给定两个非负整数(不含前导 0) A 和 B,请你计算 A×B 的值。输入格式共两行,第一行包含整数 A,第二行包含整数 B。输出格式共一行,包含 A×B 的值。数据范围1≤A的长度≤100000,0≤B≤10000输入样例:23输出样例:6# A5 A4 A3 A2 A1#x b b较小 b可以是2+位数,把b看成整体#=#个位C0=(A0xb)%10 进位t=(A0xb)//10 C0算出来可能不原创 2022-05-07 14:45:12 · 319 阅读 · 0 评论 -
归并排序 python3
p2_1归并排序O(nlogn)题目:https://www.acwing.com/problem/content/789/#Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),# 都会在载入时自动执行,这些代码,可以认为是Python的main函数。#2路归并:把两个已经有序的序列合并成一个,可以把一列数的每一个数字看成是一个独立是子序列,直接合并就行#但是因为输入的序列所以先得把他们一一分割成独立的数字,所以归并函数先分割!#每次合并都是相邻的序列!!!!(因原创 2022-05-05 12:34:48 · 101 阅读 · 0 评论 -
p4_2_高精度_减法 python3
p4_2_高精度_减法题目:给定两个正整数(不含前导 0),计算它们的差,计算结果可能为负数。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的差。数据范围1≤整数长度≤105输入样例:3211输出样例:21#加减乘除的存储格式是一样的, 因为在一个题目里面加减乘除是可能同时存在的#整体减法是针对A>=B的,若A<B则-(B-A) 这个比较是不能直接比的要另外写一个算法因为这个是大整数,所以要写一个bool型,判断是否>=即可#也没有考虑A或B原创 2022-05-06 23:06:29 · 191 阅读 · 0 评论 -
差分:逆前缀和
差分:逆前缀和输入一个长度为 nn 的整数序列。接下来输入 mm 个操作,每个操作包含三个整数 l,r,cl,r,c,表示将序列中 [l,r][l,r] 之间的每个数加上 cc。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数 nn 和 mm。第二行包含 nn 个整数,表示整数序列。接下来 mm 行,每行包含三个整数 l,r,cl,r,c,表示一个操作。输出格式共一行,包含 nn 个整数,表示最终序列。数据范围1≤n,m≤1000001≤n,m≤100000,1≤l≤r≤n原创 2022-05-16 10:58:56 · 78 阅读 · 0 评论 -
【无标题】
基础算法-个人模板原创 2022-06-20 16:21:13 · 54 阅读 · 0 评论 -
归并排序_便捷版本python3
p2_2归并排序_便捷版本题目:https://www.acwing.com/problem/content/789/def merge_sort(nums,l,r):#每次这个lr都直接想成某一个序列的左右端点,而不只是初始的lr if l>=r: return mid=(l+r)//2 merge_sort(nums,l,mid) merge_sort(nums,mid+1,r) i = l j = mid + 1 tmp = [] #原创 2022-05-05 12:35:49 · 137 阅读 · 0 评论 -
二分_数的范围python
p2_二分_数的范围O(logn)题目:https://www.acwing.com/problem/content/791/#二分包括:整数二分+浮点二分#二分的思想本质就是猜数字,比如有1-n个数蔡,每次猜一半,再知道是大是小 ,所以猜logn次#所以复杂度为O(logn)#有单调性一定二分,没有单调性也可能可以二分【二分查找的前提是必须单调#整数二分:对一列整数,可以从某个位置分开,前面满足性质,后面不满足性质 且没有交点(因为是整数离散)对于这种可以通过二分找到临界的两个点#核心:原创 2022-05-05 12:38:11 · 217 阅读 · 0 评论 -
p5_2_前缀和与差分——子矩阵的和(二维前缀和)
p5_2_前缀和与差分——子矩阵的和(二维前缀和)numpy输入一个 nn 行 mm 列的整数矩阵,再输入 qq 个询问,每个询问包含四个整数 x1,y1,x2,y2x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数 n,m,qn,m,q。接下来 nn 行,每行包含 mm 个整数,表示整数矩阵。接下来 qq 行,每行包含四个整数 x1,y1,x2,y2x1,y1,x2,y2,表示一组询问。输出格式共 qq 行,每行输原创 2022-05-16 10:58:03 · 109 阅读 · 0 评论 -
快速排序python-3
p1_1 快速排序python-3题目:https://www.acwing.com/problem/content/787/#python中没有i++,只有i+=1#//表示向下取整#两个符号命值可一起,就像换值一样#循环等冒号后面可以不换行加一句话,但是不能两句话#' '.join(map(str,nums) 这个函数只针对字符串#快排:从长到短的变,先整体保证左右两边大小,再分别xx【百度云第八章5-24min#记忆:扩充---先移动一个(调整之后要移动),后调整!移动很严格,调原创 2022-05-05 12:32:29 · 373 阅读 · 0 评论 -
第k个数(快速选择算法)python3
p1_2第k个数(快速选择算法)题目:https://www.acwing.com/problem/content/788/#时间复杂度2n,即O(n),比快速排序法快,所以不直接先快速排序再输出第k个数def main(): n,k=map(int,input("n&k\n").split()) nums=list(map(int, input("nums\n").split())) quick_selet(nums, 0, n-1, k)#下标是从0开始的 扩充原创 2022-05-05 12:33:37 · 366 阅读 · 0 评论 -
高精度——加法 python3
高精度——加法题目:https://www.acwing.com/problem/content/description/793/#高精度:针对整数#A+B 两个大整数相加 A和B的位数大概10^6#A-B 两个大整数相减 A和B的位数大概10^6#A*a 大整数×小整数 A位数<=10^6, a的数值<=10^9#A/a#A*B和A/B这两个不咋考#在C++中大整数用int存不下来,可以把每一位存到数组里面【Python中大整数的运算不会溢出#如123456789存在列表中原创 2022-05-06 14:35:24 · 602 阅读 · 0 评论 -
差分矩阵python3
差分矩阵输入一个 nn 行 mm 列的整数矩阵,再输入 qq 个操作,每个操作包含五个整数 x1,y1,x2,y2,cx1,y1,x2,y2,c,其中 (x1,y1)(x1,y1) 和 (x2,y2)(x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上 cc。请你将进行完所有操作后的矩阵输出。输入格式第一行包含整数 n,m,qn,m,q。接下来 nn 行,每行包含 mm 个整数,表示整数矩阵。接下来 qq 行,每行包含 55 个整数 x1,y1原创 2022-05-16 10:59:56 · 338 阅读 · 0 评论