
蓝桥杯python
文章平均质量分 57
sml_5421
错题集
展开
-
【笔记】枚举
是我国古代数学家张丘建在《算经》一书中提出的数学问题:“鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?比如求3x+5y=10的正整数解有多少,把x∈[0,10],y∈[0,10]逐个列举就能找到所有解。先把问题划分成一系列离散的状态,然后遍历这些状态来求解问题。枚举x,枚举y,枚举z,再加上两个上面的约束方程。假设公鸡买了x,母鸡买了y,小鸡买了z。y、z解二元一次方程组得到x的表达式。枚举:逐个尝试所有可能的方案。原创 2024-09-17 13:53:47 · 916 阅读 · 0 评论 -
【例题】lanqiao549 扫雷
输入输出。原创 2024-09-17 13:51:36 · 343 阅读 · 0 评论 -
【例题】lanqiao153 洁净数
通过枚举1-n的数,判断其是否为洁净数求解。判断此时的个位是不是2,原创 2024-09-17 13:34:42 · 267 阅读 · 0 评论 -
【例题】lanqiao152 反倍数
【代码】【例题】lanqiao152 反倍数。原创 2024-09-17 13:27:10 · 181 阅读 · 0 评论 -
【例题】lanqiao160 字符计数
【代码】【例题】lanqiao160 字符计数。原创 2024-09-17 13:21:51 · 187 阅读 · 0 评论 -
【例题】lanqiao301 实现基数排序
输入输出样例输入输出。原创 2024-09-17 11:00:16 · 241 阅读 · 0 评论 -
【例题】lanqiao 第三大的和
先求出所有可能的三个数加起来的和,且不重复。把这些和排序后,求出第三大的数。原创 2024-09-17 10:46:15 · 261 阅读 · 0 评论 -
【例题】lanqiao4425 咖啡馆订单系统
样例输入样例输出3 2样例说明输入的数组为:【3,1,2】增量序列为:【2,1】当增量 h=2:对于每一个索引 i,我们会将数组元素 arr[i] 与 arr[i−h] 进行比较,并进行可能的交换。当增量 h=1:这就是一个普通的插入排序。总结:总共进行了 3 次比较,2 次交换。原创 2024-09-17 10:36:22 · 375 阅读 · 0 评论 -
【例题】lanqiao4397 图书排序
上,对数组(w0,id0)进行排序,先排权重w,再排id.原创 2024-09-17 10:02:10 · 255 阅读 · 0 评论 -
【例题】lanqiao4403 希尔排序模板题
【代码】【例题】lanqiao4403 希尔排序模板题。原创 2024-09-16 23:40:20 · 226 阅读 · 0 评论 -
【例题】lanqiao3236 小蓝的零花钱
样例输入样例输出2。原创 2024-09-16 23:30:37 · 366 阅读 · 0 评论 -
【例题】lanqiao3412 最小化战斗力差距
样例输入31 2 3样例输出1说明样例中,当 a=[1,3],b=[2],此时战斗力差距为 1,无法得到比 1 更小的安排方式。原创 2024-09-16 23:16:30 · 278 阅读 · 0 评论 -
python排序——求按字典序排序的第k个数
设想一本英语字典里的单词,何者在前何者在后?显然的做法是先按照第一个字母、以 a、b、c……z 的顺序排列;如果第一个字母一样,那么比较第二个、第三个乃至后面的字母。如果比到最后两个单词不一样长(比如,sigh 和 sight),那么把短者排在前。举例子:当n=15时,把1到15按字典序排序就是1,10,11,12,13,14,15,2,3,4,5,……当k=6时,就是从1开始数起的第6个,则第k个数为14。那用算法如何实现?#这个函数用来计算个数#只有当n1原创 2024-01-22 13:26:38 · 676 阅读 · 0 评论 -
【例题】lanqiao3225 宝藏排序Ⅰ
这里的n的范围可以使用冒泡排序、选择排序和插入排序等算法。原创 2024-09-16 14:36:09 · 325 阅读 · 0 评论 -
【例题】lanqiao3226 宝藏排序Ⅱ
样例输入样例输出1 3 5 7 9。原创 2024-09-16 14:17:52 · 424 阅读 · 0 评论 -
【笔记】时间复杂度
线性时间复杂度(O(n))意味着算法的运行时间与输入数据的大小成正比。对于长度为n的输入,算法的执行时间大致是n的倍数。常数时间复杂度(O(1))意味着算法的运行时间与输入数据的大小无关,无论输入数据有多大,算法的执行时间都保持不变。平方时间复杂度(O(n^2))通常出现在需要对数据集中的每个元素进行多次操作的算法中。这种复杂度意味着算法的运行时间与输入数据的大小的对数成正比。在衡量时间复杂度时,一般估算其最坏情况下的数量级,而不是具体的数字。时间复杂度的衡量:算法中基本操作的执行次数。原创 2024-09-16 10:07:46 · 1092 阅读 · 0 评论 -
【例题】lanqiao3865 Alice和Bob的爱恨情仇
样例输入 12 34 1样例输出 1Alice样例输入 22 16 6样例输出 2Bob。原创 2024-09-15 23:20:01 · 376 阅读 · 0 评论 -
【例题】lanqiao2095 九进制转十进制
转换成十进制等于多少?原创 2024-09-15 20:16:37 · 275 阅读 · 0 评论 -
【例题】lanqiao1230 进制转换
先把字符串s转化成十进制,再把十进制转化成m进制。原创 2024-09-15 20:10:21 · 312 阅读 · 0 评论 -
【笔记】进制转换
比如十进制的8769里8代表8* 1000,7代表7* 100,6代表6* 10,9代表9* 1。这里的千位数代表1000,百位数代表100,十位数代表10,个位数代表1。比如十进制就是0-9,基数有10个;十六进制就是0-9、A-F,基数有16个。还是以十进制为例子,千位数的权=基数10^3=1000。,那么除以基数k就可以以低位到高位的顺序得到基数。:十进制小数转k进制,乘以k求整数,然后顺序输出。:十进制数字不断除以k求余数,然后逆序输出。十进制数=各位数字*权的和。原创 2024-09-15 14:07:52 · 1748 阅读 · 0 评论 -
【例题】lanqiao3400 异或森林
问题描述在一个神秘的世界中,存在着一个称为"异或森林"的地方。异或森林中的每个树木都拥有独特的力量。。完成任务将揭示宝藏的所在地。现在,你能告诉肖恩有多少个连续子数组满足条件吗?注意:0 的因数个数视为奇数。输入描述第一行输入一个数字 n 表示数组元素个数。第二行输入 n 个数字,第 i 个数字 a[i] 表示数组的第 i 个元素。数据保证1≤n≤1041≤ai≤n。输出描述输出一个数字表示满足条件的连续子数组的数量。样例输入。原创 2024-09-15 00:25:49 · 763 阅读 · 0 评论 -
【例题】lanqiao3691 区间或
问题描述给定一个长度为 n 的数组 a。现在有 q 次询问,给出两个整数 l 和 r ,求 a[l];∣;a[l+1];∣⋯∣;a[r−1];∣;a[r]的值,其中 ∣ 代表按位或。按位或运算符(|):参加运算的两个数,按二进制位进行“或”运算。输入格式第一行两个整数n,q 分别数组的长度和询问次数。接下来一行 n 个整数,a1,a2,⋯,an ,表示数组 a。接下来 q 行:每行两个整数l,r ,代表询问给出的区间。输出格式对于每一次询问,输出一个整数表示结果。样例输入。原创 2024-09-14 23:42:15 · 1082 阅读 · 0 评论 -
【例题】lanqiao1331 二进制中 1 的个数
例:9 的二进制表示为 1001,有 2 位是 1 ,所以函数返回 2。题目描述 给定一个整数 x,输出该数二进制表示中 1 的个数。输入描述 输入 x (内存空间为 32 位的整数)。运行限制 最大运行时间:1s 最大运行内存: 128M。输出描述 第一行输出x 二进制表示中 1 的个数。二进制中 1 的个数。原创 2024-09-14 22:42:53 · 360 阅读 · 0 评论 -
【笔记】位运算
位运算:面向二进制的计算与运算:有0得0(有一个是假的,结果就是假的)或运算:有1得1(有一个是真的,结果就是真的)异或运算:相同为0,不同为1(相同结果为假,不同结果为真)取反左移、右移。原创 2024-09-12 23:34:37 · 561 阅读 · 0 评论 -
【笔记】二维DP
通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。其中,0原创 2024-09-12 09:20:20 · 1479 阅读 · 0 评论 -
【笔记】一维动态规划DP
共有N级台阶,从第0级出发,每次可以迈1阶或者2阶,但是楼梯上的第a1、a2、a3…在一条直线上的n个空位放置若干个油桶,每2个油桶之间需间隔k个空位,有多少种放油桶的方式?最优子结构:大问题的最优解包含小问题的最优解,通过小问题可以推导出大问题。楼梯有n个台阶,每次可以一步上1阶或者2阶,一共有多少种不同的上楼方法?,我们不能踩这个台阶,那么对于第i+1个台阶的方案数就不包含。这题和上面的例题的差别在于多出了坏掉的台阶,用一个数组。第二行:包含M个正整数,表示坏掉的台阶编号。动态规划用于解决具有。原创 2024-09-12 08:29:51 · 1247 阅读 · 0 评论 -
扩展gcd
因此,对于上述问题,可以先求出ax+by=gcd(a,b)的解(x1,y1),然后再通过乘上m/gcd(a,b)求解x,y.对于任意整数a,b,m,求解未知整数x,y时,对于ax+by=m可以推出a,b的最大公因数可以整除m。上述得到的x1和y1再乘上m/gcd(a,b)就得到一组特解。原创 2024-04-11 20:50:06 · 742 阅读 · 0 评论 -
快速幂(递归,二进制拆分)
求类似ab的问题。原创 2024-04-11 20:32:26 · 219 阅读 · 0 评论 -
素数,埃式筛法
在大于1的自然数中,除了1和它本身以外不再有其他的因数的自然数。素数x的因数只有1和x。原创 2024-04-11 14:28:42 · 174 阅读 · 0 评论 -
整除/同余/GCD/LCM
整除:一个数能被另一个数整除,即余数为0。a整除b,就是b%a=0,记为a|b。b被a长出说明b%a=0。python中的除法默认是小数除法。python中的整除符号为//。原创 2024-04-11 14:23:28 · 429 阅读 · 0 评论 -
树状数组——逆序对
如果某个小朋友第一次被要求交换,则他的不高兴程度增加 1,如果第二次要求他交换,则他的不高兴程度增加 2(即不高兴程度为 3),依次类推。当要求某个小朋友第 k 次交换时,他的不高兴程度增加 k。开始的时候,所有小朋友的不高兴程度都是 0。请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。每一个小朋友的最小交换次数等于他左边比他高的人加上右边比他矮的人。输出一行,包含一个整数,表示小朋友的不高兴程度和的最小值。输入的第一行包含一个整数 n,表示小朋友的个数。最大运行内存: 256M。原创 2024-04-11 11:50:50 · 414 阅读 · 0 评论 -
【笔记】排序算法
插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。快速排序通过选择一个“基准”(pivot)元素,将待排序的序列划分为两个子序列,左边子序列的元素都比基准小,右边子序列的元素都比基准大,然后再对这两个子序列分别进行快速排序,最终得到有序的序列。,其中n是列表的长度。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。原创 2024-04-07 13:31:22 · 573 阅读 · 0 评论 -
求连通块问题
emmmm,对于连通块,其实有很多方式求解。这里我还是以那个为例子来简述怎么用python操作。原创 2024-04-01 23:22:13 · 476 阅读 · 0 评论 -
求排列组合
剪邮票。原创 2024-04-01 22:57:20 · 791 阅读 · 0 评论 -
并查集基本概念和基本操作
合并集合x,y,找到x的根节点rootx和y的根节点rooty,设置p[rootx]=rooty或者反过来也行,但是只能写其中一个。给每个集合编号,合并就是把两个集合编号改成一致,判断是不是属于同一个集合就是判断编号是不是一致。查询集合x,y是否是一个集合,判断rootx和rooty是否相等。对于每个节点x,假设p[x]为x的父节点,初始化p[x]=x。判断两个集合是否属于一个集合就是判断根节点是否相同。合并两个集合就是把一个集合和另一个集合的。* 判断两个集合是不是同属于一个集合。原创 2024-04-01 15:22:16 · 300 阅读 · 0 评论 -
exit&break
四平方和。原创 2024-04-01 12:41:30 · 281 阅读 · 0 评论 -
动态规划-背包问题-分组背包
容积为V的背包,放入N组物品,第i组物品有s[i]件,第i组第k件物品体积为w[i][k],价值为v[i][k]。每件物品最多拿一件,求体积不超过V条件下的最大价值。接下来N组数据每组:第一行输入一个整数s,表示数目;接下来s行包含两个整数w,v。dp[i][j]表示前i组物品,体积为j时的最大价值。枚举每组中的每个物品,取使价值达到最大的那一件。如何处理分组使得得到的价值最大?第一行:int N,int V。输出一个整数,表示最大价值。原创 2024-02-17 14:40:51 · 322 阅读 · 1 评论 -
动态规划-背包问题-完全背包
可见,更新dp[i][j]时,用的是同一行先前位置dp[i][j-w[i]]和上一行对应位置的dp[i-1][j],和01数组不同在于更新方向。使用单个数组更新时,采用从小到大的方向对dp数组进行覆盖。dp[i][j]表示前i种物品,体积为j时的最大价值。也就是说,每件物品可以拿0,1,…,完全背包中的每件物品有无数件。原创 2024-02-17 12:10:20 · 1171 阅读 · 1 评论 -
动态规划-背包问题-二维背包
二维背包代码简述,具体思路参考01背包。原创 2024-02-17 11:54:38 · 266 阅读 · 1 评论 -
动态规划-背包问题
更新dp[i][j]时,用到上一行对应位置dp[i-1][j]和上一行先前位置dp[i-1][j-w[i]]的元素,因此可以使用单个数组进行更新,直接从大到小对dp数组进行覆盖即可。给定一个容积为V的背包,现在有n件物品,第i件物品的体积为w i,价值为vi,每件物品只能拿或者不拿,请求出体积总和不超过V的最大价值。对于第i件物品,且第i件物品的体积比j小时,可能有拿or不拿两种状态。对于第i件物品,且第i件物品的体积比j大时,第i件物品一定不拿。dp[i][j]表示前i件物品,体积为j时的最大价值。原创 2024-02-12 08:56:16 · 1042 阅读 · 0 评论