蓝桥杯2022
文章平均质量分 58
甄小胖
这个作者很懒,什么都没留下…
展开
-
D26-蓝桥杯
啦啦啦啦现在是早上8:24。坐在图书馆里,没开灯,有点暗~每天早上都要花一些时间整理自己的梦想和心情!!!要加油呀!!剑桥的柔光!!!今天先写一下贪心1235大致有了思路但是,不确定,一会看下老师如何分析。1239没什么想法1247过了10/15个数据,没有什么好方法。1248没什么想法好困呀,等待报考六级中。。。报了4级居然不能报六级了我哭1238先完成部分代码,按照时间分好类了。先去干饭啦!!!10:45了!n,d,k = map(int,input().split())N原创 2022-04-07 21:46:57 · 158 阅读 · 0 评论 -
D25-蓝桥-贪心代码实现
今天突然有一个想法,为什么不尝试一下Cambridge呢!于是去搜了一点点信息!!开心!加油!你可以的今天先复习一下数学基础。972 gcdn = int(input())def gcd(a,b): if b==0: return a return gcd(b,a%b)for _ in range(n): a,b = map(int,input().split()) print(gcd(a,b))分解质因数 a = int(inpu原创 2022-04-06 22:03:27 · 162 阅读 · 0 评论 -
D24-蓝桥
大家还是喜欢白嫖啊,看了都不会点赞的~不过没关系,反正也是记录给自己的~现在是早上7:56。吃完早饭,整理好心情啦~开始做题!!!12101、变量名不要用max和min2、这里是j-i–max-min,可以举例子看看n = int(input())a = list(map(int,input().split()))res = 0 for i in range(n): mins = float('inf') maxs = -float('inf') for j原创 2022-04-05 22:17:45 · 575 阅读 · 0 评论 -
D23-蓝桥杯-116
先来解决这个飞行员兄弟,自己敲的时候,思路上没太大问题,还是细节上。对于蓝桥杯,题目不难,主要看细节。1161、写turn函数的时候,寻找更好的方法——直接设一个变量i2、可以用copy.deepcopy对数组进行复制3、break只跳出一层循环-----------枚举法------------import copyg = [[0]*5 for _ in range(4)]ans = []def get(i,j): return j+i*4def turn_one(x,y):原创 2022-04-03 09:50:04 · 227 阅读 · 0 评论 -
D22-蓝桥杯-717-116-1208
带分数研究了好久,很有意思!!!继续听课啦~~一会去干饭!!!现在是2022年4月2日13:36。睡醒了,又买了5斤西红柿,不过买的是小果,便宜7块钱,看看能小到哪里去。开始做题!!!717斐波那契额注意当n小于2的情况n = int(input())if n==1: print('0')elif n==2: print('0 1')else: a,b =0,1 ans = 0 print('0 1',end=' ') for i in ra原创 2022-04-02 22:11:44 · 206 阅读 · 0 评论 -
D22-蓝桥杯-1209
1209这题自己写的时候思路很乱,看了老师的解答,发现需要递归里嵌套递归,相信这题写好,一定可以对递归有更深入的理解。按c++敲,python超时了,但是有助于理解思想吧N = 10n = int(input())st = [False]*Nans = 0def check(a,c): b = n*c-a*c if not a or not b or not c: return False backup = st[:] while b原创 2022-04-02 10:11:44 · 120 阅读 · 0 评论 -
D21-蓝桥杯-92-
看了一下,蓝桥的课时也是比较多的。所以计划边听蓝桥,边复习基础课的代码。最近几天肯定会比较忙碌啦!!!毕竟要见见真题嘛~但是没关系!!!一切都值得的!!!加油!!哎,现在已经21:22了打算复习一下两道题,然后做个作业就去看书睡觉啦~AcWing 92. 递归实现指数型枚举很不错,自己写的成功了!!!很开心!N = 20n = int(input())# 0代表尚未决定,1代表选,2代表不选st =[0]*N# 决定第u个位置选不选def dfs(u): # 边界条件 if原创 2022-04-01 22:16:47 · 202 阅读 · 0 评论 -
D20-Acwing(一个月完成1刷)-DP与贪心代码实现
好啦~现在回来找bug了!285没有上司的舞会又对了一遍代码发现没错。后来发现是这个原因setrecursionlimit‘在网上查了,发现python默认的递归深度是很有限的,大概是900多的样子,当递归深度超过这个值的时候,就会引发这样的一个异常:RuntimeError: maximum recursion depth exceeded。解决的方式是手工设置递归调用深度,方式为:import syssys.setrecursionlimit(1000000) #例如这里设置为一百万’原创 2022-04-01 09:26:54 · 126 阅读 · 0 评论 -
D19-Acwing-实现DP第三节相关代码&&&课程完结撒花~
刚刚写了一个小时的日记,自己真的很幸运了,要知道珍惜呀!!!不要给自己太大压力,享受过程!!!加油!!今天计划先实现昨天看的dp第三节,虽然有点难,但应该问题不大;然后,复习之前的代码,下午看贪心啦~~其实希望能看完两节,加油!!!338数位统计鹅鹅鹅尝试看了很久的题解,发现、、看不懂。根据二八定律,我该换一个题了。291蒙德里安的梦想有些困难,无论是在初始化,还是状态转移,还是最后的输出,都需要再仔细研究!!!N = 12M =1<<N #2^N中状态def DP(n,m):原创 2022-03-31 20:40:24 · 190 阅读 · 0 评论 -
D18-Acwing-复习数论相关题目
今天好高效呀~希望能在吃午饭之前把数论的题目复习完【有点挑战】872最大公约数这个记得还是比较清楚的嘿嘿def gcd(a,b): if b==0: return a return gcd(b,a%b)n = int(input())for _ in range(n): a,b = map(int,input().split()) print(gcd(a,b))866试除法判定质数注意不要a//i+1,可能加了之后就变成了i<=(a//原创 2022-03-31 09:13:47 · 127 阅读 · 0 评论 -
D18-Acwing-复习背包问题
今天从后往前复习了,先巩固一下昨天的背包问题,毕竟昨天的代码是参考别人的,今天要自己写一遍。2.01背包1、还有一个状态f2、直接用v[i]\w[i]接收就可以3、j是从m开始的N = 1010n,m = map(int,input().split())v = [0]*Nw = [0]*Nf = [0]*Nfor i in range(n): v[i],w[i] = map(int,input().split())for i in range(n): for j in原创 2022-03-30 10:21:15 · 136 阅读 · 0 评论 -
D18-Acwing-线性DP和区间DP实现
现在是2022年3月30日早上8:08分,今天尝试了Make Time中的一些关于处理email的一些方法,对我来说可能是微信,觉得踏实了很多。最近越发感到读书的好处了!现在开始复习一下昨天学的内容。898 数字三角形注意边界情况的处理N = 510INF = -1e9a = [[INF]*N for _ in range(N)]f = [[INF]*N for _ in range(N)]n = int(input())for i in range(1,1+n): # 处理边界原创 2022-03-30 09:08:16 · 127 阅读 · 0 评论 -
D17-Acwing-继续复习826-841
刚刚写完了背包的实现。现在抓紧复习一下之前的一些代码,还有20多分钟。828模拟栈比较顺利,除了输出的大小写字母错了N = 100010m = int(input())stk,tt = [0]*N,0def push(x): global tt tt+=1 stk[tt] = xdef pop(): global tt tt-=1def empty(): global tt if tt>0: return F原创 2022-03-29 21:19:07 · 195 阅读 · 0 评论 -
D17-Acwing-背包实现
今天先来实现一下昨天学的背包,如果还有时间的话,再把之前的算法复习一下~2优化后版本N = 1010v = [0]*Nw = [0]*Nf = [0]*Nn,m = map(int, input().split())for i in range(1,1+n): v[i],w[i] = map(int,input().split()) for i in range(1,n+1): for j in range(m,v[i]-1,-1): f原创 2022-03-29 10:22:24 · 125 阅读 · 0 评论 -
D16-Acwing-复习复习
826整体思路没问题,只是需要特殊判断一下,当k==0的时候N = 100010h,e,ne,idx = -1, [0]*N, [0]*N,0def add_to_head(x): global idx,h idx+=1 e[idx] = x ne[idx] = h h =idx def add(k,x): global idx idx+=1 e[idx] = x ne[idx] = ne[k] ne[k]原创 2022-03-28 19:14:33 · 640 阅读 · 0 评论 -
D16-Acwing-4.1代码实现
昨天状态不好,highlight并没有完成,今天要努力啦~~~线性筛法这次终于看懂了!!!用最小质因子去筛选。p[j]一定是p[j]*i的最小质因子;不过,当i%p[j]==0的时候,p【j】是i的最小质因子。因此,后续如果用p[j+1]*i去筛选的时候,就不是用最小质因子去筛选了(i的最小质因子为p[j]嘛),所以,为了保证一直用最小质因子进行筛选,这个时候要break j的循环。耐下心来,还是可以看明白的嘛~很开心!!!写个代码!N = 1000010is_prime = [True]*原创 2022-03-28 10:20:03 · 898 阅读 · 0 评论 -
D15-Acwing-3.2-4.1代码实现
今天主要是复习!!!先不看dp!先把代码都实现了,把之前的弄熟了弄懂了,不要求快!!!SPFA求负环、已经看不懂笔记了,看一下别人的题解和代码嗯,具体思路是:统计某个点中最短路包含边数,如果大于n-1,则说明存在负环。嗯,遇到了一个问题,为什么大家都直接把整个队列插入,在题解里找到了答案。初始时将所有点插入队列中可以按如下方式理解:在原图的基础上新建一个虚拟源点,从该点向其他所有点连一条权值为0的有向边。那么原图有负环等价于新图有负环。此时在新图上做spfa,将虚拟源点加入队列中。然后进行sp原创 2022-03-27 21:55:30 · 262 阅读 · 0 评论 -
D14-Acwing-代码实现3.2-4.1+复习
最近感觉自己真的成熟了不少,也快乐了不少~嗯嗯哈~学习啦~昨天晚上3才睡,早上6:30就起啦但是没关系,我爱生活爱学习呀!!!加油今天先代码实现一下,实现累了,就去复习之前的。最好再看两课DP嘿嘿~加油!!!————————分界线————————————3.2搜索与图论这章主要讲最短路问题——就是一个图里一个点到任一个点或者任意两点之间的最短路。【是不是权值为1就是BFS呢???】这块需要牢记时间复杂度,我还不太理解,以后要弄懂!!!Q1:常见分类A1:(1)单源(一点到任一点的原创 2022-03-26 20:31:04 · 236 阅读 · 0 评论 -
D14-复习799+831+835-841&&842-848
今天下午有课,晚上还有事情,所以主要就是复习之前的代码,还有跟敲昨天课程的代码799思路上大体没问题,有些小问题,但是自己调整过来了。1、while中是j<i,而不是j<=i,如果=的话,出去的时候j就大于i了2、需要每次都将a[j]对应的数-13、要先a【j】-1,再j+=1n = int(input())a = list(map(int,input().split()))N = 100010st = [0]*Nres = 0j = 0for i in range(n)原创 2022-03-26 08:58:49 · 149 阅读 · 0 评论 -
D13-AcWing-复习831+835-841
今天看了一些最小生成树、最短路和数论啊啊 啊啊先复习一下之前的把,如果有时间再看代码。、今天还要去跑步,还不知道是剪视频,还是把代码敲完呀,纠结。今天复习831+835-841怕极了,但是还要冲啊831KMPKMPomg太棒了,完全忘了。而且很难理解,额鹅鹅鹅,先默写下来吧n = int(input())p = ' '+ input()m = int(input())s = ' '+ input()N = 100010ne = [0]*Nj = 0for i in rang原创 2022-03-24 21:38:05 · 423 阅读 · 0 评论 -
D12-AcWing-复习842-848&&800-803+2816&&785-790&&795-798
今天要复习所有的内容,要快马加鞭了!!!一、842这里主要出现的问题是对dfs(u)中的u的定义不清。应该是dfs是去排下标为u的数的。当u==n的时候相当于已经拍完了下表为n-1的数,也就是排完了,所以就结束。当不当n时,说明还没拍完,就排下表为u的数,在其位置上找能排的数。N = 10n = int(input())path,st = [0]*N,[False]*Ndef dfs(u): if u==n: for i in range(n):原创 2022-03-23 16:18:07 · 381 阅读 · 0 评论 -
D11-AcWing-复习835-841&&第三讲
没想到自己真的可以做到,太棒了噢!原创 2022-03-22 21:31:46 · 162 阅读 · 0 评论 -
D9-AcWing-复习785-803&&826-831&&154
这几天看论文,代码又搁置了,估计有些块注定是红色的了呜呜呜~话不多说,开始复习叭~刚好一题不空,开心!!!要好好努力学习,才不辜负自己老师和家人呀~一、785很多错误,基本上都忘了。1、终止条件2、j为r+1,r应该为index3、交换值的时候要先判断i<j4、递归时注意括号里写的是什么def quick_sort(q,l,r): if l>=r: return i = l-1 j = r+1 x = q[l+r>>原创 2022-03-20 20:26:39 · 185 阅读 · 0 评论 -
D8-AcWing-复习799
今天眼馋alfred,下了wox哈哈哈哈还好就复习一道题~799有点生疏,但是顺理成章啦~用一个index来记录每个数被refer的次数。所以每个被refer的数其实是a数组里的也就是a【i】,而不是i。所以应该让index[a[i]]+=1或者-=1n = int(input())a = list(map(int,input().split()))index = [0]*100010i,j=0,0res = 0for i in range(n): index[a[i]]原创 2022-03-16 21:28:05 · 136 阅读 · 0 评论 -
D7-AcWing-复习795-798&&800-803
昨天没来。整理了思绪以后,身心舒爽,干题啦开心795轻轻松松,注意前缀和下表从0开始n,m = map(int,input().split())nums = [0]+list(map(int,input().split()))S =[0]* 100010for i in range(1,n+1): S[i] = S[i-1]+nums[i]for _ in range(m): l,r = map(int,input().split()) print(S[r]-S[l原创 2022-03-15 19:47:23 · 225 阅读 · 0 评论 -
D6-AcWing-复习785
学习使我快乐,我爱学习,我也爱生活785快排1、少了边界判断2、递归的时候用j上面两条真的需要注意了,昨天就错了。def quick_sort(q,l,r): if l>=r: return i,j = l-1,r+1 x = q[l+r>>1] while i<j: i+=1 j-=1 while q[i]<x: i+=1原创 2022-03-13 09:55:17 · 105 阅读 · 0 评论 -
D5-AcWing-800、2816、801、803+复习785-799
我太菜了啊啊 啊啊啊啊啊!昨天上课,居然都没有学习!!!!!!!垃圾今天赶快补啊啊 !800这是一道双指针,自己写的时候想到用暴力+单调性,但是没领会到如何用单调性,看了y总的视频。发现单调性就是:i增大,j会减小,j代表使A【i】+B【j】》=x的最左边的数。...原创 2022-03-12 18:41:58 · 775 阅读 · 0 评论 -
D4-AcWing-799
看完课没时间写题了,先写一道叭。一、799双指针n = int(input())a = list(map(int,input().split()))# index_arr用来记录对应数字的数量,index_arr[3]为数字3出现的次数i,j,res = 0,0,0index_arr = [0]*100010while i<n: index_arr[a[i]]+=1 while j<i and index_arr[a[i]]==2: # 这里是j原创 2022-03-10 17:07:33 · 73 阅读 · 0 评论 -
D3-AcWing-复习785-798
今天下午有课,学习算法时间被冲刷,上午先复习一下!!!一、7851、注意边界条件判断的问题,别忘了。2、’ '.join()输出的问题。def quick_sort(q,l,r): if l>=r: return i,j,x = l-1,r+1,q[l+r>>1] while i<j: i+=1 while q[i]<x: i+=1 j-=1原创 2022-03-09 10:50:00 · 87 阅读 · 0 评论 -
D2-AcWing-前缀和&差分795~798
看视频看的有些疲惫,终于可以敲代码了!一、795前缀和自己写python模板无论是nums还是s,下标都是从1开始。n,m = map(int,input().split())nums = list(map(int,input().split()))# 初始化s数组s = [0]*(n+1) for i in range(n): s[i+1] += nums[i]+s[i]while m!=0: m -= 1 l,r = map(int,input().split(原创 2022-03-08 17:06:33 · 5263 阅读 · 0 评论 -
D1-AcWing-785-788复习&&789-790
已经忘了几天没刷了,所以从重新开始吧!这几天论文写的,日子过得,浑浑噩噩,要加油啊!!一、785快排复习几天不看,完全忘了。def quick_sort(q,l,r): if l>=r: return i = l-1 j = r+1 x = q[l+r>>1] while(i<j): i += 1 while q[i]<x: i += 1原创 2022-03-07 20:59:51 · 108 阅读 · 0 评论 -
AcWing算法基础课-D3-python模板-788逆序对数量
788逆序对数量1、内存不够了def merge_sort(q,l,r): res = 0 mid = l+r>>1 tmp,i,j = [],l,mid+1 if l>=r: return 0 res += merge_sort(q,l,mid) res += merge_sort(q,mid+1,r) while (i<=mid and j<=r): if q[i原创 2022-03-03 11:40:25 · 341 阅读 · 0 评论 -
蓝桥杯-D1
一、安装python3.8.6找IDEL找了好久,最后搜索出来了,发送到桌面快捷方式了。二、基础练习 A+B问题1、不知道怎么输入,看一下别人怎么写的。2、输入用input,类型为str3、用split分割,默认分割空格,第二个参数为分割次数。4、sum()内参数是可迭代的,如数组之类的。三、基础练习 数列排序(复习)1、还是不知道如何输入,看下别人怎么写的input()应该是\n结束。2、IDLE可以打印数组,但是打印nums.sort()返回值为None3、print函数可以使用参原创 2022-02-28 13:41:04 · 6519 阅读 · 1 评论