自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P1162 填涂颜色

方阵中有一个用1围成的闭合圈,将里面的数字标记为2,逆向思维从圈的外围向1(因为有可能1贴着墙壁,所以可以增加一个虚拟边框,从边框开始搜索),如果未超过边界,走过的路径标记为1,push下一个位置,最后标记为0且走过的位置输出0,未标记且未走过的则输出2,走过的且该标记点为1的输出1。

2024-03-25 23:05:03 199

原创 P1605 迷宫

首先标记障碍坐标为1,然后定义横纵坐标表示偏移量,将走过的路标为1,搜索所有路线,终止条件为碰到终点,ans++如果下一个路未走过且不是标记点。

2024-03-24 00:09:48 422 1

原创 P1036 [NOIP2002 普及组] 选数

精髓就在这个startx,每进入下一层的dfs,startx就增加1,就会自动选择下一个数字,当达到结束条件时return,这时for循环还未完,继续进行下一个数字的选择,循环往复。题解中有一篇采用升序的办法,dfs(当前选的个数,选中的数的总和,迭代变量)其中按位与运算符&是当左右两个都含有相同的值则输出1。(可以认为存入的二进制数对应的十进制数)对于一个数的所有子集来说可适用。第二种办法则是二进制枚举法。

2024-03-23 11:09:23 533

原创 P2895 [USACO08FEB] Meteor Shower S

依据题意可以想到建立一个pand数组初始值为0和mark数组初始值为-1,将流星砸到的点和可砸到范围的点(建立两个数组表示偏移量)赋值为他砸到的时间(pand数组),那么有重复砸到的点该点赋值的时间应该是赋值为早还是晚?如果下一个点未走过且走到该点的时间小于流星雨砸到的时间,下一个点合法就可以push下一个点(可知时间应赋值为早的)mark = -1 且 p.t < pand该点。那么结束条件就是当走到的值为pand该点等于0时就走出来了。结构体中则为坐标xy和步数step。求最少时间能逃出,广搜。

2024-03-22 15:02:17 137

原创 P1135 奇怪的电梯

如果node.y + j * x合法(上和下的层在范围之内,并且未走过)step++因为一层楼可以往上也可以往下,因此可用一个for循环-1和1来模拟上和下的情况。如果node.y + j * x满足所要求的条件,则break,输出ste。定义的结构体node中放入什么?当前层x,当前层可移动的层数y,step。和上题马的遍历相似,求到达某一层的最少按键次数,使用广搜。q.push(node.y + j * x这层)

2024-03-22 14:37:16 107 1

原创 P1443 马的遍历

定义一个结构体和队列,将第一个值放进队列头,记录当前的值并将队首元素弹出,当队列中还有元素时,找到合理的情况,找完之后将接下来合理的点push到队列中.此题中则用一个二维数组模拟棋盘,两个数组构造马的偏移量。合法点的判断:下一步可走的范围是否超出棋盘?最后用两个for循环输出即可,注意为五个场宽,可用-5。合法则a[tx][ty] = a[x][y]+1;因为不能到达的点输出-1,因此可先将棋盘先赋值-1。因此还需要一个二维数组来记录当前格是否走过。求到任意一个点的最少时间,使用广搜;

2024-03-22 14:22:20 144 1

原创 P2392 kkksc03考前临时抱佛脚

1、for循环四个科目,每一层中进行dfs(当前已经加过的题目的数量,每个科目的题量)。这题需要找到每一科所有题目放在左右脑算的最短时间,因此使用深搜。3、for循环完毕后输出ans。if(到达最大值){

2024-03-22 14:11:47 353 1

空空如也

空空如也

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

TA关注的人

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