题意 给出一个$n \times m$的网格,每个位置有一个小写字母,初始在$(1, 1)$,每次可以向上下左右走,问走到$(n, m)$的最小花费 设$(x, y)$为当前位置,$(nx, ny)$为下一位置。$s[x][y]$表示$(x, y)$位置的字符。 若$s[x][y] = s[nx][
原创 2021-06-04 23:39:34
181阅读
I. Invasion of Sjkmost(01bfs)考虑转化为最短路问题。然后从第一行开始bfs,同时用一个二维数组维护答案。双端队列存结点,若当前为1加入队首,否则加入队尾。最后扫一遍对答案取min 即可。// Problem: Invasion of Sjkmost// Contest: NowCoder// URL: https://ac.nowcoder.com/acm/contest/26808/I// Memory Limit: 524288 MB// Time Limi
原创 2022-01-22 17:51:54
60阅读
由于上下走不限制,所以按照贪心,我们应该尽可能走上下方向. 我们可以开一个双端队列,并认为每次提取队首的时候得到的是到达该点的最优策略.(这个一定是唯一的,因为不可能向右走几格,然后再退回去. ) 那么如果向上下走是不损失的,所以将上下的格子推进队首,优先扩展,然后将左右推进队尾,最后扩展. 这个贪
原创 2021-07-07 17:23:04
100阅读
题意 "题目链接" 给出一个$n \times m$的网格,给出起始点,要求向左走不超过$L$步,向右走不超过$R$步,求出能遍历到哪些点 Sol 一个很直观的想法,BFS的时候状态里记录下还能向左 / 右走多少步,然后xjbBFS,恭喜你fst了。。 正解非常的巧妙: 可以这样想:如果我们保证了到
原创 2021-06-05 09:47:40
81阅读
传送门 给出一个地图,有空地以及障碍物。可以往四个方向走,但是左走的次数不能大于x次,右走的次数不能大于y次。 普通的bfs是不能做到最有的,因为有vis,那么到达一个点时可能存在两种走法: 右->上->左->上->右 左->上->右->下->右 也就说左走的次数太多了,导致浪费了右走的次数。 那么 ...
转载 2021-04-25 14:17:00
83阅读
2评论
AtCoder ABC 213 E Stronger Takahashi (01BFS) 题目链接:E Stronger Takahashi 题目大意: 给出一张 \(n*m\) 的地图,从 \((1,1)\) 走到 \((n,m)\) ,只能走在 . 上不能走在 # 上,每次可以消掉 \(2×2\ ...
转载 2021-09-04 19:24:00
134阅读
2评论
传送门 有3个城市,'.'表示空地,可以用于建桥,'#'是城墙。 然后求至少需要建几个桥才能使得3个城市连通。 思路是用01bfs 建立一个数组dis[k][i][j]表示从第k个城市出发到i,j至少要建筑几个桥。 然后进行3次01bfs,因为'.'需要花费,权值是1,所以放在双端队列的尾部,其他放 ...
转载 2021-04-26 14:35:00
73阅读
2评论
原题链接思路:与上题类似。有两种走法,分别考虑代价:第一种花费的代价为000,第二种花费的代价为1
原创 2022-07-15 09:31:07
25阅读
原题链接思路:很容易想到bfsbfsbfs的思路,实际上边权只有两种:1.1.1.如果下一个点可以走,则边权为
原创 2022-07-15 09:31:03
82阅读
http://codeforces.com/contest/1340/problem/C 我完了,连普及的题都不会做。 设$f[i][j]$表示在$j$时刻到$i$,最少多少个红绿灯回合。 发现i只用往i 1和i+1走,设$t=|x1 x2|$,则$j+t define fo(i, x, y) fo
原创 2023-05-09 18:19:29
128阅读
Edges0表示{{n1,n2},...{n3,n4}}表示n1和n2,n3和n4之间有路联接。Edges1表示{{n1,n2},...{n3,n4}}表示n1和n2,n3和n4之间有损坏的路连接。可能有环,但无自环,重边,可能不联通。可以用类似上章的思路,没损害的路加到pre中,损坏的路加到que中。需要维修的路入队的时候不能计算最短距离,因为不一定是最短边。改在
原创 2023-10-11 17:45:09
0阅读
补题链接:Here A - Takoyaki 很容易看出 \(\frac{N + X - 1}{X} \times T\) B - Multiple of 9 给定一个很大的整数,问其是否是 \(9\) 的倍数 累加各个位数,然后判断取余结果 C - Step 给定一个数组,每次操作可以给一个数增加
转载 2021-04-08 20:13:00
213阅读
2评论
Casper is designing an electronic circuit on a $N \times M$ rectangular grid plate. There are $N \times M$ square tiles that ar
题目描述 有一个仅由数字000与111组成的n×nn \times nn×n格迷宫。若你位于一格0上,那么你可以移动到相邻444格中的某一格111上,同样若你位于一格1上,那么你可以移动到相邻444格中的某一格000上。 你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身)。
原创 2022-05-27 19:45:11
117阅读
01迷宫 BFS 题目描述 有一个仅由数字000与111组成的n×nn \times nn×n格迷宫。若你位于一格0上,那么你可以移动到相邻444格中的某一格111上,同样若你位于一格1上,那么你可以移动到相邻444格中的某一格000上。 你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身)。 输入输出格式 输入格...
原创 2023-04-25 00:04:51
95阅读
P1948 [USACO08JAN]Telephone Lines S(二分&01bfs)注意01bfs的方式。如果要用vis数组,则判断的条件是这样。if((d[v]<=d[u]+(w>x) && vis[v])) continue;这里是与条件,因为可能存在v之前被访问过, v
原创 2022-04-18 11:22:47
57阅读
给你一个下标从 0 开始的二维整数数组 grid ,数组大小为 m x n 。每个单元格都是两个值之一:0 表示一个 空 单元格,1
原创 精选 2024-07-01 15:28:40
176阅读
一、题目中等题。提示:m == mat.lengthn == mat[i].length1 <= m, n <= 1041 <= m * n <= 104mat[i][j] is either 0 or 1.mat 中
原创 2022-07-14 10:00:45
77阅读
双端队列$BFS$实现$01$最短路 介绍 如果最短路的边权只有$01$两种,那么我们可以使用双端队列$BFS$。 用双端队列$BFS$实现$01$最短路通常能比$SPFA$和$dijkstra$省时。 时间复杂度:\(O(N)\)。 实现方法 如果当前处理的点的边权为$0$,那么将这个点移至队首, ...
转载 2021-10-06 15:34:00
481阅读
2评论
https://www.luogu.org/problemnew/show/P1141题目描述有一个仅由数字0与1组成的n×n格迷宫。若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上...
转载 2019-04-26 22:24:00
139阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5