首页 > 小红的矩阵修改
头像 BaiJay
发表于 2026-01-15 22:13:46
算法思路详解 状态表示选择:三进制状态压缩 由于每个位置存在三种状态,因此采用三进制进行状态压缩,以此来高效表示每一列的整体状态。 优化状态规模:选择列方向压缩 比较 n 和 m 的大小后,考虑到 3^m 的数值规模过大,无法高效处理,因此最终选择对每一列进行状态压缩,避免状态空间爆炸。 展开全文
头像 Xuan2333
发表于 2026-02-23 21:05:21
链接:点我直达b站https://www.bilibili.com/video/BV1zSfqBDEfa/?spm_id_from=333.1387.homepage.video_card.click&vd_source=25202b9574fc44face89f1e9796d69b9代码来 展开全文
头像 Rain_Fly
发表于 2024-03-23 17:47:59
">typedef long long ll; using namespace std; const int N = 5e2 + 10; const int mod = 1e9 + 7; int dp[1010][1010]; //dp[i][j]代表前i列,第i列的状态压缩为j的合法方案数 in 展开全文
头像 蒙奇D_路飞
发表于 2025-03-12 13:14:35
import sys i = 0 s = [] n, m = 0, 0 for line in sys.stdin: if i == 0: n, m = map(int, line.split()) else: s.append(line[:-1]) 展开全文
头像 牛客919648186号
发表于 2025-03-09 16:32:58
#include <bits/stdc++.h> using namespace std; int main() { int n, m; cin >> n >> m; vector<string> mat(n); fo 展开全文
头像 腌萝卜干
发表于 2026-02-03 12:43:32
分析 非常有教育意义的状态压缩问题 注意到每个位置的状态有三个, 可以对应 并且发现行的数量非常少只有, 因此可以考虑三进制状态压缩 定义状态表示前列并且第列的状态是的最小代价, 状态转移递推即可 三进制状态的每一位获取方法是, 下一位获取方法是 首先预处理合法状态 初始化第一列状态 当前列的 展开全文