horse 改成 ros 要几步
每步可以插入、删除或替换一个字符。运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <vec
写网格路径
补全 paths:第一行和第一列都是 1,其余每格等于上面加左边。输出 3 行 4 列的路径数。 (本题用 g++ -std=c++17 -O0 编译。)
网格里放一块石头
同样 3 行 4 列,但 (1,1) 那一格有障碍,走不了。补全 paths_ob:障碍格的路径数是 0。输出还剩几条路。 (本题用 g++ -std=c++17 -O0 编译。)
写编辑距离
补全 edit:第一行第一列是 0..n 和 0..m,字符相同取左上角,不同就在三个方向里取最小再加一。输出 horse 变 ros 的步数。 (本题用 g++ -std=c++17 -O0 编译。)
三个二维 DP 一起交
网格路径已给出,补全带障碍的网格路径和编辑距离,输出「3 行 4 列/同样的网格但 (1,1) 有障碍/horse 变 ros」三个答案。 (本题用 g++ -std=c++17 -O0 编译。)
状压里二进制位表示什么
第 1 步:s = 10,二进制 1010 第 2 步:右移 1 位再与 1:查这一位 第 3 步:或上 1 << 2:这一位置 1 第 4 步:与上 ~(1 << 1):这一位清 0 第 5 步:一个整数就是一个集
怎么判断第 k 位是不是 1
判断整数 s 的第 k 位是不是 1,写法是【0】。
四个元素一共多少个状态
四个元素的全部子集,用二进制表示一共有多少种?运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include &
数出恰好选了两个的状态
四个元素、共 16 个状态。补全 bits_two:数出其中恰好有两位是 1 的状态有几个。 (本题用 g++ -std=c++17 -O0 编译。)
位运算三件套
补全三个函数:has(第 k 位是不是 1,返回 0 或 1)、add(把第 k 位置成 1)、rm(把第 k 位清成 0)。用 s = 10(二进制 1010)验四样,输出「has(s,1)/has(s,2)/add(s,2)/rm(s,