刷题
文章平均质量分 57
xxdragon126
这个作者很懒,什么都没留下…
展开
-
POJ-1724 Roads + Python (DFS)
原题链接:1724 -- ROADS参考资料:王子解救公主力扣 174. 地下城游戏 DFS + Python_xxdragon126的博客-CSDN博客一问题描述:从起始城市1到终止城市N,要求在路费ALL可控的情况下路程最短,返回最短路程。详见原题链接。结题思路:## 使用DFS:# 1 首先,将数据转化为嵌套的字典,以便于查找当前城市所能到达的所有城市,以及到达各城市所需的路径和路径。# 2 然后,从起始点1开始,查找其邻接点城市,将每个城市作为初始点,进行dfs搜索.原创 2022-01-09 22:54:24 · 2368 阅读 · 0 评论 -
POJ-1020 Anniversary Cake + Python(DFS)
原题:1020 -- Anniversary Cake一 问题描述对于一个大小为size*size的方形矩阵,现在用n个小方块将其填满。要求:1 n个方块均需被填入矩阵;2 填放完毕之后,方形矩阵中无空位,即正好将方形矩阵填满。详细描述见原题链接。二结题思路:DFS检测可行的一种方案# 1 根据蛋糕尺寸size,设置一个Size*Size大小的矩阵,并设置其初始值为0,用来存放蛋糕。# 2 对nums块蛋糕从大到小排序,然后分别对每块蛋糕进行处理。此处设置一个for循环.原创 2022-01-04 22:04:47 · 325 阅读 · 0 评论 -
补充-堆箱子+python(DFS)
题目描述:给定n个箱子的长宽高信息(顺序不定),将它们竖直堆放,求所能堆叠的最大高度。要求:上方箱子的底面不能超出下方箱子的底面。其他:以所能获得的最大高度为目标,不必使用所有的箱子。一 解题思路# 0仍将数据转化为矩阵;题目设计寻找所有可行的方案,考虑使用DFS编程求解。# 1 对长方体的3个属性信息排列组合为3组,每组中前两个属性元素作为底边边长、第3个属性元素作为高。## 示例:对于长方体的3个属性信息“85 35 23”进行排列组合,得到的3组数据为:[85 35 23.原创 2021-12-30 12:07:54 · 961 阅读 · 0 评论 -
POJ 1010 - STAMPS + Python(DFS*)重做
说明:第一版见:POJ 1010 - STAMPS + Python(DFS*)_xxdragon126的博客-CSDN博客原题链接:1010 -- STAMPS为了巩固该题目,现对其重做;重做之后发现,编程思想与之前有所不同。看来,在经过了一段刷题训练之后,编程逻辑也发生了变化。此方案是原方案的简化版。一问题描述集邮者到邮局购买指定总额的邮票,银行根据总额需求,以实际库存派发邮票,并且一次最多派发4张。邮票库存示例如下:示例1:1 2 3;说名有三种邮票类型,其面值分别为1 2 .原创 2021-12-28 11:48:17 · 547 阅读 · 0 评论 -
补充-Drones + Python
一问题描述有1个侦察机负责对一个n*n的方形区域进行侦察;当民用无人机位于危险区域且在侦察机的8邻域内时,该民用无人机将被侦查记录。如下图方格所示,“-1”表示危险区域,“100”和“101”表示第一类民用无人机的编号(以及起始位置),“200”表示第二类民用无人机的编号(以及起始位置);侦察机的起始位置为左上角方格。/****************如图所示:侦察机从左上角方格(0,0)处起飞,沿固定轨迹侦查整个方形区域。如果飞行到(n-1,n-1)坐标处,则回到起始点处重新飞行。..原创 2021-12-27 12:19:53 · 1052 阅读 · 0 评论 -
POJ 1691 - Painting A Board + Python (DFS)
题目链接:1691 -- Painting A Board参考资料:POJ 1691 - Painting A Board | 眈眈探求一 题目描述: 给定一个矩形区域,它包含多个不重叠的方块,现在要给各方块涂颜色,并且设定了各方块的目标颜色,例如A的目标颜色为蓝色,B的为红色。 着色原则: *1假设为C着色,那么必须保证其上方的格子A已被涂色,否则C不能被着色;也就是说,必须从低行号开始着色,而不能反向。 ...原创 2021-12-25 22:56:02 · 658 阅读 · 0 评论 -
补充- Cut images + Python (DFS)
一题目描述题目描述:输入:n*n的矩阵,矩阵中的每个数字代表一个表情,相同数字表示相同的表情。问题描述:现在绘制矩形来框选矩阵区域,使得不重复的表情数量最大。输出:输出该最大数量。示例:1 # 表示测试用例数目5 # 表示矩阵大小n = 5 12 2 6 5 77 3 4 8 92 11 12 13 1415 16 17 18 1924 23 22 21 20#1 201512 2 6 7 77 7 7 7 77 7 7 7 77 7 7 7 77.原创 2021-12-24 16:07:48 · 482 阅读 · 0 评论 -
做DFS题目时的注意事项
1.转存矩阵、字典、队列1.1如果涉及前后顺序,需要小心处理2.对于搜索所有方案,使用return,而不是returnTrue or False2.1寻找任意一种可行方案时,使用returnTrue or False3.设计一些提前终止的判别条件3.1例如:设置最大搜索深度...原创 2021-12-23 22:29:30 · 211 阅读 · 0 评论 -
POJ-2286 The Rotation Game + Python(DFS)
题目链接:poj 2286 The Rotation Game-面试哥题目目的:通过沿8个方向旋转,使得中间8个元素的数值相同,示例如下:一解题说明#1 注意事项:Rotation时,需要重新赋值矩阵数据,否则将前后一起变化。#2 注意事项:用队列存储操作过程,在将队列赋值给新队列时,需要特别注意队列中的元素顺序,因为它对应着操作顺序。 new_step = [] new_step.append(dir_i) ...原创 2021-12-23 22:10:11 · 380 阅读 · 0 评论 -
POJ-2870 Light Up + DFS(1级DFS+1级DFS) + Python
参考链接:poj2870Light Up(迭代加深搜索)_ophunter的专栏-CSDN博客一说明:1.1题目大致意思是:放置灯以照亮整个矩阵,返回所需灯的最小数量。给定一个矩阵如图(a)所示,其中黑色方框表示障碍物,障碍物的编号表示其周围需要的灯的数量(无编号的障碍物所需的灯数不限);除此之外,空白网格所在行列也需要有灯存在,以便于照亮该空白网格。 特别地注意事项:1.2由于涉及寻找所有方案,所以确定本题用DFS解决。1.2.1将...原创 2021-12-22 22:04:04 · 696 阅读 · 0 评论 -
Python编程中防止字典、矩阵、队列的元素被更新
一 说明: 在做DFS题目时,本人经常使用dict、list和queue;然后,当进行递归时,这些变量的数据一经修改,则无法复原。因此,尝试通过将其赋值给新变量,从而避免产生上述问题。二 解决方案: 2.1 对于字典,在给新字典的键值赋值时,使用“[::]”符号获得原字典相应键的值(这里的值是list类型):# ## 0 传递字典数据;用来更新障碍周围所需的灯数 new_barrier_dict = {} for keyi in ...原创 2021-12-21 21:27:09 · 732 阅读 · 0 评论 -
力扣 174. 地下城游戏 DFS + Python
原题链接:力扣备注:最初做本题目是用的动态规划;在做了一些DFS题目之后,发现本题也可以用DFS来做。一特别注意1.需要特别注意:假设初始时刻的健康点数为Init,那么再进行下一步搜索之前,他的健康点数部分和为:Sum=Init+“起始点的元素值”,即Sum = Init-2。2.策略:将题目转化为——设置初始健康点数Init,使得走到目标节点时的健康点数不小于1;2.1因此,可将Init从1开始增加,直到满足题目要求停止;2.2同时注意,在搜索过程中,部分和Sum...原创 2021-12-10 20:17:34 · 3022 阅读 · 0 评论 -
POJ 3414 Pots【BFS】+ Python
原题链接:# https://exp-blog.com/algorithm/poj/poj3414-pots/# https://www.it610.com/article/4935648.htm一 特别注意:1.每一种操作对应于一个子节点,并且该子节点具有多种状态,包括:1.1A瓶溶液体积1.2B瓶溶液体积1.3操作类型1.4步数1.5父节点PS:将以上各状态存储在一个字典中,将该字典作为一个子节点。二代码实现:## 本代码的节点是结构体#...原创 2021-12-10 17:39:55 · 647 阅读 · 0 评论 -
POJ 3126 - Prime Path + Python(BFS)
原题链接:# 原题:https://exp-blog.com/algorithm/poj/poj3126-prime-path/# 解题思路:https://blog.csdn.net/LYHVOYAGE/article/details/18228531一注意技巧:1.这个题可以把“千百十个”的每一位当做一个轮子,每个轮子上有0-9十位数字;每次转动一个轮子,则得到一个新数值,即为当前节点的子节点。2.特别注意:2.1千位不能为02.2个位不能为偶数(详见获得子节点...原创 2021-12-10 17:23:41 · 466 阅读 · 0 评论 -
POJ 1129-Channel Allocation + Python(DFS)
题目链接:# https://blog.csdn.net/MIKASA3/article/details/52334480一解题思路# 1 首先,构造图结构,获得当前节点,以及其邻接点# 2 然后,设置各节点的初始颜色为0# 3 依次对每个节点进行着色:# 3.1 给当前节点从c=1开始着色,判断# 3.1.1 如果当前节点与各邻接节点的颜色均不相同,说明所选的颜色可用,于是:1 设置当前节点的颜色为c,2 然后对一个节点进行着色处理# 3.1.2 如果当前节点与...原创 2021-12-10 15:36:49 · 323 阅读 · 0 评论 -
POJ 1416 - Shredding Company + Python(DFS*)
(不一样的递归思想,值得再看。)题目链接:# https://exp-blog.com/algorithm/poj/poj1416-shredding-company/# https://blog.csdn.net/lyy289065406/article/details/6647969一特别注意1. 关于递归思路,参考别人的设计思想: 以“12346”为例,当进行深度搜索时:第一步,先切下一个“1”,然后递归去切“2346”;第...原创 2021-12-08 22:25:06 · 263 阅读 · 0 评论 -
POJ-1011 Sticks + Python(DFS)
题目链接:# https://www.cnblogs.com/dongsheng/archive/2012/08/14/2638926.html一注意1.当前题目与前一篇POJ 2362 - Square + Python_xxdragon126的博客-CSDN博客的核心算法一模一样,因此,直接使用的上一篇的核心代码,仅将输入环节做了修改。2.修改内容包括: 2.1题目给转化为,如何对一组数据进行等分,并要求等分的数量最大,即每一份的长度最小。 ...原创 2021-12-08 08:58:35 · 406 阅读 · 0 评论 -
POJ 2362 - Square + Python(DFS)
原题链接:# https://blog.csdn.net/z8110/article/details/48003467# https://exp-blog.com/algorithm/poj/poj2362-square/一注意事项:1.当dfs递归过程中设计字典、队列时,要首先将其重新赋值给新变量: # 传递字典 new_dict = {} for key in dict.keys(): if key != s..原创 2021-12-07 15:06:22 · 271 阅读 · 0 评论 -
POJ 1010 - STAMPS + Python(DFS*)
题目链接:# https://blog.csdn.net/baoqiaoben/article/details/79844831# https://exp-blog.com/algorithm/poj/poj1010-stamps/这道题目做了很久,需要注意的是:1 dfs的递归过程中,当使用队列、字典传递参数时,队列、字典一经变化,其值将不再恢复。处理措施,将其值依次取出后,用for循环赋值给一个新的队列或者字典变量;2 dfs的递归过程中,将队列或者字典直接赋值给其他变量后,当原队列原创 2021-12-07 08:45:11 · 424 阅读 · 0 评论 -
POJ1321-Chess Problem + Python
原题链接:1321 -- 棋盘问题一说明:1目前做了一些DFS题目,发现它们包含以下几种类型:1.1DFS,遍历所有方案,求解总方案数(本题)1.2DFS:遍历所有方案,找到具有最短路径的一条通路,返回最短路径的步数(POJ 3009 - Curling 2.0 + Python DFS_xxdragon126的博客-CSDN博客)1.3DFS:必须是无重复的一条通路(POJ 2488 - A Knight‘s Journey + Python_xxdragon126的博客-C...原创 2021-12-05 21:28:48 · 531 阅读 · 0 评论 -
POJ 3009 - Curling 2.0 + Python DFS
原题链接及参考资料:# http://poj.org/problem?id=3009# https://exp-blog.com/algorithm/poj/poj3009-curling-2.0/一 注意事项 1 初始时刻的运动状态为“静止”,接下来有4种运动方向:上下左右 3当状态为运动时,下一步进行判断:3.1 继续运动3.2 遇到石头,则停止,并击碎石头...原创 2021-12-04 22:21:12 · 456 阅读 · 0 评论 -
POJ 2488 - A Knight‘s Journey + Python
这是一个深度优先搜索DFS题目。原题连接:2488 -- A Knight's Journey参考资料:POJ 2488 - A Knight's Journey | 眈眈探求参考资料:POJ2488-A Knight's Journey【骑士游历】_ζёСяêτ - 小優YoU-CSDN博客参考资料:POJ-2488-A Knight's Journey_fuerbosi-CSDN博客一问题描述骑士按照象棋中“马走日”的原则在棋盘行走,直到不重复地走完整个棋盘,并且输出“字典顺序.原创 2021-12-03 14:53:15 · 519 阅读 · 0 评论 -
POJ 2251 - Dungeon Master + Python实现
原题连接:2251 -- Dungeon Master参考资料:POJ 2251 - Dungeon Master | 眈眈探求问题:从起点S,经上下左右前后行走,到达目的地E所经过的路径。(详见原题链接)输入: 第一行是:层数L,每一层的行数R和列数L,由此构成了一个3D空间; 接下来的的L*R行,输入的是相应的Dungeon布局,由#(阻塞)和.(同行),以及起点S和重点E组成; 例如: 注意:...原创 2021-12-02 22:37:40 · 781 阅读 · 0 评论