题目
题目原文请移步下面的链接
- https://www.luogu.com.cn/problem/P4825
- 参考题解:https://www.luogu.com.cn/problem/solution/P4825
- 标签:
OI
、数据结构
、线段树
、动态规划
题解
对话
小码匠:我AC了。
老码农:你怎么做的?
小码匠:暴力DP。
老码农:为啥没用线段树
搞啊?
小码匠:杀鸡焉用牛刀,100的数据量,没必要吧,用暴力不香吗?
老码农:额。。。(早晨的那道题:P2846本来暴力也可以搞,小码匠用线段树搞的)
- 看来以后选题要注意啊,不要给小家伙留有偷懒的空间。。。
代码
#include <bits/stdc++.h>
using namespace std;
#define endl '\n';
const int mod = 1000000007;
void best_coder() {
int r, c, k;
scanf("%d%d%d", &r, &c, &k);
vector<vector<int>> g(r, vector<int>(c));
vector<vector<int>> f(r, vector<int>(c));
for (int i = 0; i < r; ++i) {
for (int j = 0; j < c; ++j) {
scanf("%d", &g[i][j]);
}
}
f[0][0] = 1;
for (int i = 0; i < r; ++i) {
for (int j = 0; j < c; ++j) {
for (int a = i + 1; a < r; ++a) {
for (int b = j + 1; b < c; ++b) {
if (g[i][j] != g[a][b]) {
f[a][b] += f[i][j];
f[a][b] %= mod;
}
}
}
}
}
printf("%d", f[r - 1][c - 1]);
}
void happy_coder() {
}
int main() {
// 提升cin、cout效率
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
// 小码匠
best_coder();
// 最优解
// happy_coder();
// 返回
return 0;
}
小码匠上初中后,平时作业比较多,课余时间都奉献给一方键盘和数学公式。
有时间我会把文章发布到CSDN,和更多的小伙伴分享我的学习心路。