- 博客(112)
- 收藏
- 关注
原创 蓝桥杯刷题day14——盖印章【算法赛】
小 Z 喜欢盖印章。有一天,小 Z 得到了一个 n×m 的网格图,与此同时,他的手上有两种印章(分别称为 A,B),如下图所示。他想将这两种印章盖在这个网格图上。由于小 Z 是一个有原则的人,他将按照以下规则进行操作。给定小 Z 所盖完印章的网格图以及两种印章的使用次数 K,请你分别求出两种印章的使用次数。可以证明,在这种情况下二者的使用次数是唯一的。数据保证存在一种方案达到要求。具体例子可以参考样例。
2024-04-07 23:23:02
724
原创 蓝桥杯刷题day13——乘飞机【算法赛】
给出 q 个二元组 l,r,判断数组在区间 [l,r] 上是否存在两个差值小于等于 365 的数,若存在输出 YES,否则输出 NO。如果查询区间的长度较小,我们需要对区间内的年龄进行排序,然后遍历排序后的列表,检查相邻年龄之间的差值。每个乘客的年龄用一个 0 到 36500 的整数表示,两个乘客的年龄相差 365 以内就认为是相仿的。),那么显然区间内至少存在两个年龄相差不超过365的乘客,因此可以直接输出"YES"。q 行,每行输出 YES 或者 NO,分别表示区间内存在/不存在年龄相仿的乘客。
2024-04-01 23:24:42
2589
1
原创 蓝桥杯刷题day13——玩游戏【算法赛】
小 A 和小 B 两个人在海边找到了 n 个石子,准备开始进行一些游戏,具体规则如下:小 B 首先将 n 个石子分成若干堆,接下来从小 A 开始小 A 和小 B 轮流取石子,每次可以任选一堆石子取走任意个,不可不取,没石子可取的输。对于小A来说,如果石子堆的总数是偶数,他无法确保自己总是能做出最优的选择,因为小B可以模仿小A的动作,保证每次轮到小A取石子时,石子堆的总数仍然是偶数。这样,无论小B如何取石子,小A总能保持石子堆的总数为奇数,直到最后小A取走最后一个石子,赢得游戏。
2024-04-01 14:30:44
703
原创 蓝桥杯刷题day13——自助餐【算法赛】
首先,根据题目描述,我们知道有六种不同的盘子形状,每种形状对应一个价格。为了方便计算,我们可以将这些形状和它们对应的价格存储在一个字典(
2024-04-01 13:57:46
630
原创 蓝桥杯刷题day12——元素交换【算法赛】
题目要求我们通过最少的交换次数,使得一个2×N的二进制数组中没有连续的0或1。我们可以发现,在这样一个数组中,每一行中的每个元素都应该与其相邻的列中的元素不同。这是因为如果相邻的列中有相同的元素,那么不论怎么交换,总会存在连续的0或1。这样,我们就可以得到两种情况下各自需要改变的元素数量。最后,我们选择这两种情况中需要改变元素数量较少的那个,作为我们的答案。函数来计算需要改变的元素数量,然后分别计算了两种情况下的数量,并输出了其中的最小值。输出一个整数,表示使数组A中不存在连续的0或1所需的最少交换次数。
2024-03-30 23:09:32
499
原创 蓝桥杯刷题day11——数学奇才【算法赛】
如果题目中的“不超过n次操作”意味着我们必须进行恰好n次操作,那么策略会稍有不同,但在这个特定问题中,由于我们只对负数进行操作,且每个负数只操作一次,所以实际操作次数会少于或等于n,而无需担心超出限制。而对于负数,取反后会变为正数,从而增大总和。嗯,你可以选择序列中的某一段连续的数字,然后将它们变为自身的相反数,举个例子,假设你选择了位置,那么a1, a2,...,ai中的每个数字都会剩以-1.现在,你需要巧妙运用你的能力,设计—种操作方案,使得经过不超过n 次操作后,序列a中所有数字的总和尽可能大。
2024-03-28 23:09:48
559
原创 蓝桥杯刷题day10——猜灯谜【算法赛】
第一行包含一个整数 n( 3≤n≤10^5),表示灯笼的数量。接下来一行,包含 n 个整数 a1,a2,...,an(1≤ai≤10^5 ),表示每个灯笼上的数字.在计算谜底时,需要根据灯笼的位置来判断相邻的灯笼。对于最后一个灯笼,需要特别处理,将其与第一个灯笼视为相邻。根据元宵节的传统,每个灯笼的谜底都是由相邻两个灯笼上的数字之和得出的。需要注意的是,在环形排列的灯笼中,首尾两个灯笼也是相邻的。输出n个整数,分别表示第1,2,...,n个灯笼的谜底。现在,请你计算并依次输出每个灯笼的谜底。
2024-03-27 23:17:52
443
原创 蓝桥杯刷题day09——霓虹【算法赛】
这可以通过对两个数字的灯管集合执行集合的对称差集操作来完成,对称差集返回两个集合中独有的元素,即只在一个集合中而不在另一个集合中的元素。例如,从显示数字0到显示数字6,会有一个灯管熄灭,一个灯管点亮,那么总共有两根灯管发了变化。具体来说,当前的数字串是A,—秒钟之后,数字串变成了B,小蓝想知道,在数字跳转的过程中,有多少个灯管的状态发生了变化。他想要知道,在数字变化的过程中,总共有多少根灯管的状态产生了变化?最后,我们将所有数字对的灯管差异计数相加,得到总的变化灯管数量,并输出这个值。
2024-03-27 00:12:06
1027
原创 蓝桥杯刷题day08——完全日期
然后,使用datetime模块中的datetime和timedelta类来遍历从2001年1月1日到2021年12月31日的所有日期。在每个日期上,计算年、月、日的各位数字之和,如果和在ls列表中,则计数器c加1。例如:2021年6月5日的各位数字之和为2+0+2+1+6+5=16,而16是一个完全平方数,它是4的平方。所以2021年6月5日是一个完全日期。计算从2001年1月1日到2021年12月31日之间有多少个“完全日期”,即日期中年、月、日的各位数字之和是一个完全平方数的日期。
2024-02-06 23:18:42
2251
1
原创 蓝桥杯刷题day07——斐波那契与7
首先定义了一个列表b,然后计算了斐波那契数列的前200项,并将每一项的个位数存储在列表b中。然后统计了列表b中前60项数字7的个数x,并计算出202202011200项中包含7的个数为x*y。实际上,需要考虑斐波那契数列的周期性来计算出202202011200项中数字7的个数。本题的结果为一 个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。请问, 斐波那契数列的第 1 至 202202011200 项(含)中, 有多少项的个位 是 7。
2024-02-06 00:27:15
973
原创 蓝桥杯刷题day06——平均
他想更改若干个数的值使得这10 种数出现的次数相等(都等于n/10),请问代价和最少为多少。有一个长度为n 的数组(n 是 10 的倍数),每个数ai都是区间 [0,9] 中的整数。只更改第 1,2,4,5,7,8 个数,需要花费代价 1+2+4+5+7+8=27。3. 循环n次,读取每个数和对应的代价,将代价存储到ls中对应数的列表中。小明发现数组里每种数出现的次数不太平均,而更改第i 个数的代价为bi,2. 创建一个长度为10的空列表ls,用于存储每种数对应的代价。输入的第一行包含一个正整数 n。
2024-02-04 22:15:07
2485
原创 蓝桥杯刷题day05——2023
例如,数字20322175和33220022都完全不包含2023,因为无论我们移除哪个部分,都不能得到2023。请求出在12345678 (含) 至 98765432 (含) 中 ,有多少个数中完全不包含 2023。但是,数字20230415和20193213则包含2023,因为如果我们移除某些部分,可以得到2023。这意味着无论我们移除这个数字的哪个部分,都不能得到数字2023。对于每个数字,尝试移除其各个部分,检查是否可以得到数字2023。在给定数字范围内,完全不包含数字2023的所有数字的数量。
2024-02-03 00:14:14
772
原创 使用F函数和Q函数进行高级数据库查询
F函数和Q函数是Django框架中非常实用的数据库查询工具,它们可以帮助开发者更加灵活地构建复杂的查询条件,提高查询的效率和精确度。在实际开发中,合理使用F函数和Q函数可以使得数据库查询更加高效和灵活,为开发者提供了更多的可能性。
2024-02-01 17:00:24
901
原创 设置Django中的静态文件
首先,我们需要在settings.py文件中设置STATIC_URL,这个变量表示静态文件的URL前缀,通常设置为'/static/'。这意味着我们在模板中引用静态文件时,可以使用类似于'/static/css/style.css'的路径来指定静态文件的位置。除了以上两个设置之外,我们还需要在模板中使用静态文件时,使用{% load static %}标签加载静态文件,然后使用{% static 'path_to_file' %}标签指定静态文件的路径。
2024-01-23 15:14:13
760
原创 Django ORM 模糊查询实例解析
通过利用 Django ORM 中这些先进的单表查询方法和模糊查询选项,可以根据自己的特定需求精确地过滤和检索数据,从而使应用程序更加健壮和高效。
2024-01-18 18:35:30
1483
原创 Django ORM 中高级单表查询 API(2)
Django ORM 中的单表查询 API(1)在上一篇博文中,我们探讨了 Django ORM 中单表查询 API 的基础知识,重点是 all()、filter()、get()、first() 和 last()。在本博文中,我们将深入探讨 Django ORM 中更高级的查询方法及其用法,包括 exclude()、order_by()、count()、reverse()、exists()、values()、values_list() 和 distinct()。
2024-01-18 14:56:21
1561
原创 解决Windows系统443端口占用导致Steam商店无法打开的方法
这将列出所有占用443端口并处于监听状态的程序,并显示它们的进程ID(PID)。通过上述步骤,我们可以解决Windows系统中443端口被占用导致Steam商店无法打开的问题。一旦占用该端口的程序被终止,用户应该能够重新打开Steam商店并正常访问。4. 打开任务管理器(可以通过快捷键Ctrl+Shift+Esc来快速打开),切换到"详细信息"选项卡,并在"PID"列中找到与步骤3中记录的PID对应的程序。1. 使用快捷键Win+R来打开运行窗口,输入"cmd"并按下回车键,以打开命令行工具。
2024-01-18 12:38:01
1084
原创 Django ORM 中的单表查询 API(1)
在 Django 中,对象关系映射(ORM)提供了一种功能强大、表现力丰富的数据库交互方式。ORM 允许开发人员使用高级 Python 代码执行数据库查询,从而更轻松地处理数据库实体。下面,我们将探讨 Django ORM 中单表查询 API 的用法,重点是 all()、filter()、get()、first() 和 last()。
2024-01-17 16:21:03
567
原创 socket实现web应用的本质
http协议建立在TCP协议的基础之上,是在应用层做的封装,即里面包含了三次握手的过程,并且对内容格式做了限制。响应首行:包括协议/版本号、状态码和状态消息(如“HTTP/1.1 200 OK”)。:通常包括请求行(方法、URL、协议版本)、请求头(附加信息)和请求体(POST数据等)。响应体:实际返回给浏览器的数据内容,如HTML代码、JSON对象等。:Web通信建立在请求和响应的基础上,浏览器先发出请求,服务器再给出响应。:响应来自浏览器的请求,并发送回相应的数据。数据(只有post请求才会有请求体)
2024-01-02 16:57:38
1635
原创 协程的概念,协程+遇到IO切换实现单线程提供并发
1.什么是协程?# 协程也可以称为“微线程”,就是开发者控制线程执行# 控制先执行某段代码,然后再切換到另外函数执行,来回切换# 2.协程可以提高并发?# 协程自己本身无法实现并发(甚至性能会降低)。# 协程+IO切换,性能提高。# 3.进程、线程、协程的区别?# 4.単线程提供井发:# -协程+IO切换:gevent# -基于事件循环的异歩非阻塞框架:Twisted。
2023-12-05 12:28:57
250
1
原创 网络编程重要知识点总结
同步阻塞是指程序按照顺序逐个执行任务,如果某个任务需要等待资源或数据就绪,程序会一直等待直到资源或数据就绪。例如,上面的代码示例中,程序会逐个遍历key list中的每个元素,并发送HTTP请求。如果请求需要等待响应,程序会一直等待直到响应返回。
2023-12-05 11:54:37
854
原创 python——多线程的相关知识点总结
线程池是一种用于管理线程的机制,它预先创建一定数量的线程,并将这些线程放在池中等待任务。通过使用线程池,可以避免频繁创建和销毁线程带来的开销,提高程序的性能和响应速度。这意味着每个线程都可以有自己的数据副本,而不会与其他线程的数据混淆。当一个线程获得一个RLock时,其他线程可以尝试获得同一个RLock,只要在每次获得锁时都相应地释放锁,就可以保证程序的正确性。线程是操作系统能够进行运算调度的最小单位,它是进程内的基本单位,一个进程可以包含多个线程,这些线程共享同一个进程的内存空间和资源。
2023-12-03 16:02:45
220
原创 蓝桥杯day04——采购方案
解释:符合预算的采购方案如下: nums[0] + nums[1] = 4 nums[0] + nums[2] = 3 nums[1] + nums[2] = 3 nums[2] + nums[3] = 10。在给定的"nums"列表中,每个元素代表一种商品的价格,你可以购买2种商品,但是总价格不能超过"target"值。首先,对输入的"nums"列表进行排序,这样可以从最小的价格开始考虑,减少后续搜索的范围。最后,返回计数器"count"的值,即满足条件的购买方案的数量。
2023-12-02 17:20:56
181
原创 蓝桥杯day04——查询后矩阵的和
分别用于存储每一行和每一列的数据。字典的键是行或列的索引,值是该行或该列的元素列表。上图展示了每一个查询操作之后的矩阵。所有操作执行完以后,矩阵元素之和为 17。上图展示了每个查询以后矩阵的值。所有操作执行完以后,矩阵元素之和为 23。,对于每个查询,判断其类型(取出行或取出列)以及其索引。请你执行完所有查询以后,返回矩阵中所有整数的和。的值,分别计算它们的和,并累加到变量。一开始,给你一个下标从。
2023-12-02 15:51:25
503
原创 蓝桥杯day03——二进制间距
的二进制表示中连续的"1"之间的最大间隔。中"1"的数量,如果数量小于等于1,则意味着在二进制表示中只有一个"1",因此返回0。在 22 的二进制表示中,有三个 1,组成两对相邻的 1。在 8 的二进制表示中没有相邻的两个 1,所以返回 0。第一对相邻的 1 中,两个 1 之间的距离为 2。第二对相邻的 1 中,两个 1 之间的距离为 1。中"1"的数量大于1,使用列表推导式找到二进制字符串。,用于存储二进制表示中所有"1"的索引位置。中所有"1"的索引位置,并将它们存储在列表。
2023-12-01 17:37:57
541
原创 Python 2 和 Python 3 的区别
总的来说,Python 3 是对 Python 2 的改进和优化,它提供了更清晰、更简洁的语法和更强大的功能。尽管两者之间存在一些重要的区别,但是大部分的 Python 2 代码都可以在 Python 3 中运行,只是可能需要一些小的修改和调整。Python 2 和 Python 3 之间有很多重要的区别,特别是在处理编码、字符串和类方面的区别。
2023-11-30 17:37:36
337
原创 蓝桥杯day02——移动机器人
例如,如果一个机器人位于位置 0 并往右移动,另一个机器人位于位置 2 并往左移动,下一秒,它们都将占据位置 1,并改变方向。例如,如果一个机器人位于位置 0 并往右移动,另一个机器人位于位置 1 并往左移动,下一秒,第一个机器人位于位置 0 并往左行驶,而另一个机器人位于位置 1 并往右移动。列表的每个元素是一个包含两个元素的列表,第一个元素是机器人的位置,第二个元素是机器人的方向('L' 或 'R')。现在下标为 1 的机器人开始往左移动,下标为 2 的机器人开始往右移动。
2023-11-29 00:21:54
1825
原创 蓝桥杯day02——Fizz Buzz
实现的是经典的FizzBuzz问题,即对从1到n的每个整数进行如下操作:如果该数能被3整除,就在答案中添加"Fizz";如果该数能被5整除,就在答案中添加"Buzz";如果该数能同时被3和5整除,就在答案中添加"FizzBuzz"。如果都不能,就将该数本身添加到答案中。各个整数的 Fizz Buzz 表示,并用字符串数组。
2023-11-28 23:39:45
660
原创 蓝桥杯day02——第三大的数
要在一个整数列表中找到第三个最大的数字。如果列表中没有三个不同的数字,则返回最大的数字。此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1。注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。第三大的数不存在, 所以返回最大的数 2。如果不存在,则返回数组中最大的数。给你一个非空数组,返回此数组中。第三大的数是 1。
2023-11-28 23:19:28
1868
原创 蓝桥杯day01——负二进制数相加
这个代码的主要思想是模拟在常规二进制系统中的加法运算,但所有的运算都以负二进制的格式进行。给出:数组由若干 0 和 1 组成,按最高有效位到最低有效位的顺序排列。两数的表示形式为:不含前导零、由若干 0 和 1 组成的数组。实现两个以负二进制形式表示的数的加法。arr1 表示 11,arr2 表示 5,输出表示 16。也同样不含前导零:即。,返回两数相加的结果。
2023-11-28 00:06:01
497
原创 蓝桥杯day01——根据给定数字划分数组
小于 pivot 的元素的相对位置和大于 pivot 的元素的相对位置分别为 [9, 5, 3] 和 [12, 14] ,它们在结果数组中的相对顺序需要保留。小于 pivot 的元素的相对位置和大于 pivot 的元素的相对位置分别为 [-3] 和 [4, 3] ,它们在结果数组中的相对顺序需要保留。这个结果是一个新的列表,其中包含按照要求排序的元素。元素 9 ,5 和 3 小于 pivot ,所以它们在数组的最左边。元素 4 和 3 大于 pivot ,所以它们在数组的最右边。目标是将给定的整数列表。
2023-11-27 20:18:33
511
原创 蓝桥杯刷题day01——字符串中的单词反转
你在与一位习惯从右往左阅读的朋友发消息,他发出的文字顺序都与正常相反但单词内容正确,为了和他顺利交流你决定写一个转换程序,把他所发的消息。中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
2023-11-27 16:49:06
342
原创 网络编程之socket流程解析
1、一直在连接,直到连接成功才往下执行其他代码。注:不要相互等待,会互相阻塞,形成死锁。2、等待客户端发来数据。1、等待客户端来连接。2、等待服务端发来数据。
2023-11-26 10:23:20
248
原创 多项式求和之十二
给定程序中函数 fun 的功能是:计算 s=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…计算公式返回的结果。
2023-11-25 21:40:52
333
原创 字符串转换成十进制整数
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。输出格式:在一行中输出转换后的十进制数。题目保证输出在长整型范围内。输入格式:输入在一行中给出一个以#结束的非空字符串。
2023-11-25 20:54:45
276
原创 求最小的起始正整数
你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值。请你在确保累加和始终大于等于 1 的前提下,选出一个最小的 正数 作为 startValue。给你一个整数数组 nums。你可以选定任意的 正数 startValue 作为初始值。第一行,一个正整数n,表示数组的大小 第二行,n个整数,每个数之间用空格隔开。
2023-11-24 16:25:58
258
原创 python-爬楼梯
接下来,我们可以用动态规划的方式,从下到上计算出 f(n),即先计算出 f(3)=1+2=3,f(4)=2+3=5,...,f(n)。假设到达第 n 阶楼顶的方法数为 f(n),那么 f(n) 可以由 f(n-1) 和 f(n-2) 两种方式组成,同时,我们知道到达第一阶和第二阶的方法数分别为 f(1) = 1,f(2) = 2(一次爬一阶或两阶)。因此,可以得到递推公式:f(n) = f(n-1) + f(n-2)。最终,f(n) 就是我们要求的结果,即到达楼顶的不同方法数。
2023-11-24 15:44:29
450
9大安卓应用程序完整项目代码
2024-06-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人