自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(150)
  • 收藏
  • 关注

原创 Python:每日一题之《消除游戏》真题练习

在一个字符串 S 中, 如果 Si​=Si−1​ 且 Si​!=Si+1​, 则称 Si​ 和 Si+1​ 为边缘 字符。=Si−1​ 且 Si​=Si+1​, 则 Si−1​ 和 Si​ 也称为边缘字符。对于一个给定的串 S, 一次操作可以一次性删除该串中的所有边缘字符 (操作后可能产生新的边缘字符)。对于 25% 的评测用例, ∣S∣≤10^3, 其中 ∣S∣ 表示 S 的长度;对于所有评测用例, ∣S∣≤10^6,S 中仅含小写字母。对于 50% 的评测用例, ∣S∣≤10^4;

2023-03-29 19:34:09 146

原创 Python:《矩形拼接》真题练习

以下 T 行, 每行包含 6 个整数 a1​,b1​,a2​,b2​,a3​,b3​, 其中 a1​,b1​ 是第一个矩 形的边长, a2​,b2​ 是第二个矩形的边长, a3​,b3​ 是第三个矩形的边长。对于 10% 的评测用例, 1 ≤ T ≤ 5,1 ≤ a1​,b1​,a2​,b2​,a3​,b3 ​≤ 10,a1 ​= a2 ​= a3​∘。对于 30% 的评测用例, 1 ≤ T ≤ 5,1 ≤ a1​,b1​,a2​,b2​,a3​,b3​ ≤ 10。3、8 条边,除去上面的所有情况。

2023-03-28 22:09:43 153

原创 Python:《寻找整数》

有一个不超过 1017 的正整数 n,知道这个数除以 2 至 49 后的余数如下表所示,求这个正整数最小是多少。

2023-03-28 20:52:19 185

原创 Python:每日一题之《质因数个数》

质数:指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。对于 30% 的评测用例, 1 ≤ n ≤ 10000。对于 60% 的评测用例, 1 ≤ n ≤ 10^9。给定正整数 n, 请问有多少个质数是 n 的约数。对于所有评测用例, 1 ≤ n ≤ 10^16。输出一个整数, 表示 n 的质数约数个数。396 有 2,3,11 三个质数约数。约数:又称因数,没有余数,取余为0。输入的第一行包含一个整数 n。

2023-03-28 19:26:17 7

原创 Python:每日一题之砝码称重

你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1​,W2​,⋅⋅⋅,WN​。能称出的 1010 种重量是:1、2、3、4、5、6、7、9、10、11。对于所有评测用例,1≤N≤100,N​个砝码总重不超过 100000。请你计算一共可以称出多少种不同的重量?注意砝码可以放在天平两边。第二行包含 N 个整数:W1​,W2​,W3​,⋅⋅⋅,WN​。(2=6−4(天平一边放 6,另一边放 4);对于 50的评测用例,1≤N≤15。输入的第一行包含一个整数 N。输出一个整数代表答案。

2023-03-26 12:53:38 12

原创 Python:每日一题之清理水域

小蓝有一个 n×m 大小的矩形水域,小蓝将这个水域划分为 n 行 m 列,行数从 1 到 n 标号,列数从 1 到 m 标号。对于所有评测用例,1 ≤ r1 ≤ r2 ≤ n ≤ 100,1 ≤ c1 ≤ c2 ≤ m ≤ 100,0 ≤ t ≤ 100。每次,小蓝可以清理一块矩形的区域,从第 r1 行(含)到第 r2 行(含)的第 c1 列(含)到 c2 列(含)。接下来 t 行,每行四个整数 r1,c1,r2,c2,相邻整数之间用一个空格分隔,表示一次清理。第二行包含一个整数 t ,表示清理的次数。

2023-03-19 23:09:19 14

原创 Python:每日一题之信号覆盖

小蓝负责一块区域的信号塔安装,整块区域是一个长方形区域,建立坐标轴后,西南角坐标为 (0,0), 东南角坐标为 (W,0), 西北角坐标为 (0,H), 东北角坐标为 (W,H)。其中横坐标范围为 0 到 W,纵坐标范围为 0 到 H,总共测试 (W+1)×(H+1) 个点。对于所有评测用例,1 ≤ W,H ≤ 100,1 ≤ n ≤ 100,1 ≤ R ≤ 100,0 ≤ x ≤ W,0 ≤ y ≤ H。给定信号塔的位置,请问这 (W+1)×(H+1) 个点中有多少个点被信号覆盖。运用数学的方法去解决,

2023-03-18 21:30:24 377

原创 Python:每日一题之数位排序

当 两个数各个数位之和不同时, 将数位和较小的排在前面, 当数位之和相等时, 将数值小的排在前面。例如, 2022 排在 409 前面, 因为 2022 的数位之和是 6, 小于 409 的数位 之和 13。1 到 13 的排序为: 1,10,2,11,3,12,4,13,5,6,7,8,9。给定正整数 n,m, 请问对 1 到 n 采用这种方法排序时, 排在第 m 个的元 素是多少?又如, 6 排在 2022 前面, 因为它们的数位之和相同, 而 6 小于 2022。第二行包含一个正整数 m。

2023-03-17 23:19:07 265

原创 Python:判断蓝桥

对于所有评测用例,输入的字符串由大写或小写英文字母组成,长度至少为 11 个字符,不超过 2020 个字符。输入一个字符串,请判断这个字符串是否正好是。在输入时如果只是大小写不同也算作相同。,否则输出全小写的字符串。输入一行包含一个字符串。,输出全小写的字符串。

2023-03-16 23:49:23 22

原创 Python:星期几

输入第一行包含一个整数 w,表示给定的天是一周中的哪天,w 为 1 到 6 分别表示周一到周六,w 为 7 表示周日。输出一行包含一个整数,表示 n 天后是一周中的哪天,1 到 6 分别表示周一到周六,7 表示周日。给定一天是一周中的哪天,请问 n 天后是一周中的哪天?对于所有评测用例,1≤n≤1000000。第二行包含一个整数 n。

2023-03-16 23:09:54 5

原创 Python:每日一题之最大连通

如果从一个标为 1 的位置可以通过上下左右走到另一个标为 1 的位置,则称两个位置连通。与某一个标为 1 的位置连通的所有位置(包括自己)组成一个连通分块。这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。小蓝有一个 30 行 60 列的数字矩阵,矩阵中的每个数都是 0 或 1。请问矩阵中最大的连通分块有多大?

2023-03-16 22:56:32 70

原创 Python:大乘积

小蓝有 30 个数,分别为:99, 22, 51, 63, 72, 61, 20, 88, 40, 21, 63, 30, 11, 18, 99, 12, 93, 16, 7, 53, 64, 9, 28, 84, 34, 96, 52, 82, 51, 77。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。小蓝可以在这些数中取出两个序号不同的数,共有 30×29/2=435 种取法。请问这 435 种取法中,有多少种取法取出的两个数的乘积大于等于 2022。

2023-03-15 09:25:27 6

原创 Python:特殊日期

对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。请问从 1900 年 11 月 11 日至 9999 年 12 月 31 日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之和。这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。例如,2022 年 11 月 13 日满足要求,因为 2+0+2+2=(1+1)+(1+3)。请提交满足条件的日期的总数量。

2023-03-15 09:18:13 13

原创 Python:每日一题之字母数

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。请找到一个大于 20222022 的最小数,这个数转换成十六进制之后,所有的数位(不含前导 0)都为字母(A 到 F)。请将这个数的十进制形式作为答案提交。

2023-03-15 09:13:09 4

原创 Python:每日一题之小猪存钱罐(并查集)

现在已知每个钥匙所在的存钱罐,Byteazar 想要买一辆小汽车,而且需要打开所有的存钱罐。第一行:包括一个整数 N(1 ≤ N ≤ 10^6),这是 Byteazar the Dragon 拥有的存钱罐的数量。接下来有 N 行:第 i+1 行包括一个整数 x,表示第 i 个存钱罐对应的钥匙放置在了第 x 个存钱罐中。读入存钱罐的数量以及相应的钥匙的位置,求出能打开所有存钱罐的情况下,需要破坏的存钱罐的最少数量并将其输出。输出一个整数,表示能打开所有存钱罐的情况下,需要破坏的存钱罐的最少数量。

2023-03-05 15:37:15 25

原创 Python:每日一题之七段码(并查集,dfs连通性判断)

例如 c 发光,其他二极管不发光可以用来表达一种字符。这种方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较相似。上图给出了七段码数码管的一个图示,数码管中一共有 77 段可以发光的二 极管,分别标记为 a,b,c,d,e,f,g。在设计字符 的表达时,要求所有发光的二极管是连成一片的。例如:b,f 发光,其他二极管不发光则不能用来表达一种字符,因为发光 的二极管没有连成一片。例如:a,b,c,d,e 发光,f,g 不发光可以用来表达一种字符。例如:b 发光,其他二极管不发光可以用来表达一种字符。

2023-03-04 17:40:46 29

原创 Python:每日一题之合根植物(并查集)

w 星球的一个种植园,被分成 m×n 个小格子(东西方向 m 行,南北方向 n 列)。第一行,两个整数 m,n,用空格分开,表示格子的行数、列数(1 ≤ m,n ≤ 1000)。接下来 k 行,每行两个整数 a,b,表示编号为 a 的小格子和编号为 b 的小格子合根了。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。接下来一行,一个整数 k (0 ≤ k ≤ 10^5 ),表示下面还有 k 行数据。格子的编号一行一行,从上到下,从左到右编号。

2023-03-01 20:22:29 34

原创 Python:蓝桥幼儿园(并查集)

小明想让所有学生都互相成为朋友,但是蓝桥幼儿园的学生实在太多了,他无法用肉眼判断某两个学生是否为朋友。于是他起来了作为编程大师的你,请你帮忙写程序判断某两个学生是否为朋友(默认自己和自己也是朋友)。第 1 行包含两个正整数 N,M,其中 N 表示蓝桥幼儿园的学生数量,学生的编号分别为 1∼N。蓝桥幼儿园的学生是如此的天真无邪,以至于对他们来说,朋友的朋友就是自己的朋友。对于每个 op=2 的输入,如果 x 和 y 是朋友,则输出一行。小明会用红绳连接两名学生,被连中的两个学生将成为朋友。

2023-02-28 22:40:27 26

原创 Python:每日一题之盛最多水的容器(双指针)

给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

2023-02-28 17:59:43 12

原创 Python:每日一题之纪念品分组

为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。第3 ~ n+2行每行包含一个正整数 pi​ (5≤pi​≤w),表示所对应纪念品的价格。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。第 1 行包括一个整数 w (80≤w≤200),为每组纪念品价格之和的上限。第 2 行为一个整数 n (1≤n≤30000),表示购来的纪念品的总件数。

2023-02-21 20:25:47 27

原创 Python:每日一题之取球博弈

第一行 3 个正整数 n1​,n2​,n3​ (0

2023-02-20 22:40:28 55

原创 Python:每日一题之机器人塔

输入一行两个整数 M,N(0

2023-02-19 19:48:44 29

原创 Python:每日一题之跳蚱蜢优化(双向广搜)

由于起点和终点的串不同,正向BFS和逆向BFS扩展的下一层数量也不同,也就是进入2个队列的串的数量不同,先处理较小的队列,可以加快搜索速度。

2023-02-18 13:57:17 36

原创 Python:跳蚱蜢(BFS判重)

请你计算一下,如果要使得蚱蜢们的队形改为按照逆时针排列, 并且保持空盘的位置不变(也就是 1−8 换位,2−7换位,...),至少要经过多少次跳跃?如下图所示: 有 9 只盘子,排成 1 个圆圈。其中 8 只盘子内装着 8 只蚱蜢,有一个是空盘。我们把这些蚱蜢顺时针编号为 1 ~ 8。每只蚱蜢都可以跳到相邻的空盘中, 也可以再用点力,越过一个相邻的蚱蜢跳到空盘中。

2023-02-17 22:34:16 306

原创 Python:每日一题之剪邮票(BFS全排列)

思路:暴力求全排列+检查连通性。(1)用递归暴力列出所有可能的排列:从12个数中选5个数进行全排列。(2)判断这5个数是否连通。算法复杂度:12*11*10*9*8=121/7=95040可行!判断2个数是否连通小技巧:·在原图中向上为-4,向下为+4,向左为-1,向右为+1,但是遇到34578这种4+1=5,这种情况不符合,所以重构一下原图。·向上为-5,向下为+5,向左为-1,向右为+1。

2023-02-17 11:11:20 286

原创 Python:每日一题之全球变暖(BFS连通性判断)

连通性判断:图论的一个简单问题,给定一张图,图由点和连接点的边组成,要求找到图中互相连通的部分。BFS判断连通性的步骤:·从图上任意一个点u开始遍历,把它放进队列中。·弹出队首u,标记u已搜过,然后搜索u的邻居点,即与u连通的点,放到队列中。·继续弹出队首,标记搜过,然后搜索与它连通的邻居点,放进队列。继续以上步骤,直到队列为空,此时一个连通块已经找到。其他没有访问到的点,属于另外的连通块,按以上步骤再次处理这些点。最后所有点都搜到,所有连通块也都找到。连通性判断什么岛屿不会被完全淹没?

2023-02-16 20:00:40 199

原创 Python算法:BFS

BFS搜索的原理:“逐层扩散”。从起点出发,按层次从近到远,逐层先后搜索。编码:用队列实现。应用:BFS一般用于求最短路径问题,BFS的特点是逐层搜索,先搜到的层离起点更近。

2023-02-16 00:15:00 94

原创 Python:每日一题之迷宫(队列实现BFS)

题目求字典序最小的最短路径在每次扩散下一层(往BFS的队列中加入下一层的结点)时,按字典序“D

2023-02-15 14:10:44 271

原创 Python:每日一题之发现环(DFS)

不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了 BUG。小明的实验室有 N 台电脑,编号 1⋯N。原本这 N 台电脑之间有 N−1 条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。2、若一个父节点的子节点被发现已经标记,则该子节点一定在环上。按从小到大的顺序输出在环路上的电脑的编号,中间由一个空格分隔。其中, 1≤N≤10^5,1≤a,b≤N。

2023-02-14 11:03:16 298

原创 Python:青蛙跳杯子(BFS)

输入为 2 行,2 个串,表示初始局面和目标局面。我们约定,输入的串的长度不超过 15。如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。本题的任务就是已知初始局面,询问至少需要几步,才能跳成另一个目标局面。其中,W 字母表示白色青蛙,B 表示黑色青蛙,∗ 表示空杯子。X 星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。隔着 1 只其它的青蛙(随便什么颜色)跳到空杯子里。隔着 2 只其它的青蛙(随便什么颜色)跳到空杯子里。输出要求为一个整数,表示至少需要多少步的青蛙跳。

2023-02-13 19:41:17 280

原创 Python:分考场(DFS剪枝)

思路:从第1个考场开始,逐个加入考生。每新加进来一个人x,都与已经开设的考场里面的人进行对比,如果认识,就换个考场。直到找到一个考场,考场里面所有的人都不认识x,x就可以坐在这里。如果所有已经开设的考场都有熟人,就开一个新考场给x坐。剪枝:用剪枝来减少搜索。在搜索一种新的可能的考场安排时,如果需要的考场数量已经超过了原来某个可行的考场安排,就停止。

2023-02-13 13:38:48 61

原创 Python:每日一题之四阶幻方(DFS剪枝)

把 1 ~ 16 的数字填入 4×4 的方格中,使得行、列以及两个对角线的和都相等,满足这样的特征时称为:四阶幻方。如果固定左上角为 1,请计算一共有多少种方案。就可以算为两种不同的方案。四阶幻方可能有很多方案。

2023-02-13 11:26:41 66

原创 Python:路径之谜(DFS剪枝)

有时是可以的,比如上图中的例子。为了方便表示,我们约定每个小格子用一个数字代表,从西北角开始编号: 0,1,2,3 ⋯⋯。本题的要求就是已知箭靶数字,求骑士的行走路径(测试数据保证路径唯一)第一行一个整数 N (0≤N≤20),表示地面有 N×N 个方格。第二行 N 个整数,空格分开,表示北边的箭靶上的数字(自西向东)第三行 N 个整数,空格分开,表示西边的箭靶上的数字(自北向南)小张冒充 X 星球的骑士,进入了一个奇怪的城堡。城堡里边什么都没有,只有方形石头铺成的地面。输出一行若干个整数,表示骑士路径。

2023-02-12 20:18:15 564 3

原创 Python:每日一题之剪格子(DFS剪枝)

本题的要求就是请你编程判定:对给定的 m×n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。程序先读入两个整数 m,n 用空格分割 (m,n

2023-02-12 13:03:10 336

原创 Python:每日一题之玩具蛇(DFS搜索)

小张有一条玩具蛇,一共有 16 节,上面标着数字 1 至 16。每一节都是一个正方形的形状。相邻的两节可以成直线或者成 90 度角。请帮小张计算一下,总共有多少种不同的方案。如果两个方案中,存在玩具蛇的某一节放在了盒子的不同格子里,则认为是不同的方案。小张还有一个 4×4 的方格盒子,用于存放玩具蛇,盒子的方格上依次标着字母 A 到 P 共 16 个字母。小张可以折叠自己的玩具蛇放到盒子里面。他发现,有很多种方案可以将玩具蛇放进去。

2023-02-11 20:34:26 33

原创 Python:每日一题之全球变暖(DFS连通性判断)

由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有 2 座岛屿。照片保证第 1 行、第 1 列、第 N 行、第 N 列的像素都是海洋。请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。第一行包含一个整数 N (1≤N≤1000)。以下 N 行 N 列代表一张海域照片。输出一个整数表示答案。

2023-02-10 14:08:37 522

原创 Python算法:DFS排列与组合算法(手写模板)

例:前三个数的全排列(从小到大)打印 n 个数中,任意 m 个数的排列 4个数中,任意3个数的排列自写组合算法: 1、例:打印二进制数,以打印000~111为例(若需要反过来打印,只需交换第8、10行) 2、例:打印组合,以3个数{ 1,2,3 }为例

2023-02-09 20:42:38 417 1

原创 Python:迷宫

开始的时候,直升机把 1100 名玩家放入一个个小房间内。玩家一定要按照地上的字母移动。X 星球的一处迷宫游乐场建在某个小山坡上。它是由 10×10 相互连通的小房间组成的。X 星球的居民有点懒,不愿意费力思考。他们更喜欢玩运气类的游戏。房间的地板上写着一个很大的字母。请你计算一下,最后,有多少玩家会走出迷宫,而不是在里边兜圈子?

2023-02-09 18:51:42 292

原创 Python:每日一题之寒假作业(dfs自写全排列)

现在小学的数学题目也不是那么好玩的。每个方块代表 1~13 中的某一个数字,但不能重复。(加法,乘法交换律后算不同的方案)你一共找到了多少种方案?

2023-02-09 18:04:28 42

原创 Python算法:深度优先搜索—DFS(模板及其样例)

【介绍】•沿着一条路径一直搜索下去,在无法搜索时,回退到刚刚访问过的节点。•并且每个节点只能访问一次。•本质上是持续搜索,遍历了所有可能的情况,必然能得到解。•流程是一个树的形式,每次一条路走到黑。•目的主要是达到被搜索结构的叶结点直到最后一层,然后回退到上层,被访问过的节点会被标记,然后查看是否有其他节点,如果有则继续下一层,直到最后一层。一次类推直到所有节点都被查找。【思想】后访问的节点,其邻接点先被访问。根据深度优先遍历的定义,后来的先搜索(栈、递归)。【步骤】

2023-02-08 22:39:00 865

基于51单片机的红外循迹小车

本项目使用51单片机为主体,使用了2个红外板块,每一个板块上有5个传感器,本车有两个电机,可实现功能为:循迹,沿一条黑色的线运行

2023-02-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除