A6166 | 「USACO 2021 US Open Platinum」Balanced Subsets
时间限制2s
内存限制256MB
通过 / 提交0/0
题目描述
**题目来自 [USACO 2021 US Open Contest, Platinum](http://usaco.org/index.php?page=open21results) Problem 3. [Balanced Subsets](http://usaco.org/index.php?page=viewproblem2&cpid=1142&lang=zh)**
Farmer John 的草地可以被看作是由正方形方格组成的巨大的二维方阵(想象一个巨大的棋盘),对于每一个 $1\le i\le N$、$1\le j\le N$,方格可以用有序对 $(i,j)$ 表示($1\le N\le 150$)。某些方格中含有草。
方格的一个非空子集被称为是「平衡的」,如果以下条件成立:
1. 所有子集中的方格均含有草。
2. 子集是四连通的。换句话说,从子集中的任一方格到另一方格均存在一条路径使得路径中的相邻方格均水平或竖直方向上相邻。
3. 如果方格 $(x_1,y)$ 和 $(x_2,y)$($x_1\le x_2$)存在于子集中,那么所有满足 $x_1\le x\le x_2$ 的方格 $(x,y)$ 也存在于子集中。
4. 如果方格 $(x,y_1)$ 和 $(x,y_2)$($y_1\le y_2$)存在于子集中,那么所有满足 $y_1\le y\le y_2$ 的方格 $(x,y)$ 也存在于子集中。
计算平衡的子集数量模 $10^9+7$ 的结果。
Farmer John 的草地可以被看作是由正方形方格组成的巨大的二维方阵(想象一个巨大的棋盘),对于每一个 $1\le i\le N$、$1\le j\le N$,方格可以用有序对 $(i,j)$ 表示($1\le N\le 150$)。某些方格中含有草。
方格的一个非空子集被称为是「平衡的」,如果以下条件成立:
1. 所有子集中的方格均含有草。
2. 子集是四连通的。换句话说,从子集中的任一方格到另一方格均存在一条路径使得路径中的相邻方格均水平或竖直方向上相邻。
3. 如果方格 $(x_1,y)$ 和 $(x_2,y)$($x_1\le x_2$)存在于子集中,那么所有满足 $x_1\le x\le x_2$ 的方格 $(x,y)$ 也存在于子集中。
4. 如果方格 $(x,y_1)$ 和 $(x,y_2)$($y_1\le y_2$)存在于子集中,那么所有满足 $y_1\le y\le y_2$ 的方格 $(x,y)$ 也存在于子集中。
计算平衡的子集数量模 $10^9+7$ 的结果。
输入格式
输入的第一行包含 $N$。
以下 $N$ 行每行包含一个长为 $N$ 的字符串。如果方格 $(i,j)$ 中有草,则第 $i$ 行的第 $j$ 个字符为
以下 $N$ 行每行包含一个长为 $N$ 的字符串。如果方格 $(i,j)$ 中有草,则第 $i$ 行的第 $j$ 个字符为
G,否则为 .。输出格式
输出平衡的子集数量模 $10^9+7$ 的结果。
输入输出样例
输入 #1
2 GG GG
输出 #1
13
输入 #2
4 GGGG GGGG GG.G GGGG
输出 #2
642
- 测试点 1-4 满足 $N\le 4$。
- 测试点 5-10 满足 $N\le 20$。
- 测试点 11-20 没有额外限制。
供题:Benjamin Qi
- 测试点 5-10 满足 $N\le 20$。
- 测试点 11-20 没有额外限制。
供题:Benjamin Qi
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?