题目大意:求沿着网格线把一个矩形分成分空的两部分,每部分所有格子连通,且至少有一个格子在原矩形的边界上的方案数
题解:插头dp?打表!
我的收获:Orz clj
#include <cstdio>
#include <cstring>
#include <cstdlib>
int ans[7][8] = {
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 1, 2, 3, 4, 5, 6},
{0, 0, 6, 15, 28, 45, 66, 91},
{0, 0, 0, 52, 143, 350, 799, 1744},
{0, 0, 0, 0, 614, 2431, 9184, 33603},
{0, 0, 0, 0, 0, 16000, 102147, 637330},
{0, 0, 0, 0, 0, 0, 1114394, 11948355}
};
int main() {
int A, B;
scanf("%d %d", &A, &B);
if (A > B) { int t = A; A = B; B = t; }
printf("%d\n", ans[A][B]);
return 0;
}
本文介绍了一个算法问题,即计算将矩形网格沿网格线分割成两部分的所有可能方案数量,这两部分必须连通且至少有一部分包含边界格子。通过预计算表格的方式实现了快速查询答案。
2420

被折叠的 条评论
为什么被折叠?



