我不是不知道怎么求助,我只是知道灌水区大佬多。
站外题

#include <iostream>
using namespace std;
long long h, w;
long long n = 0, ans=0;
char a[505][505];
string s[2505];
long long dp[55][55][2505][5];
int main() {
cin >> h >> w;
for (long long i = 1; i <= h; i++) {
for (long long j = 1; j <= w; j++) {
cin >> a[i][j];
}
}
while (cin >> s[++n]) //因为我不会弄,所以这跟ZYF题解的写法几乎一样!
n--;
for (long long x = h; x >= 1; x--) {
for (long long y = 1; y <= w; y++) {
for (long long i = 1; i <= n; i++) {
for (long long j = 0; j < s[i].size(); j++) {
if (j == 0) {
if (a[x][y] == s[i][0]) {
dp[x][y][i][0] = 1;
}
continue;
}
if (a[x][y] != s[i][j]) {
continue;
}
for (long long fx = x; fx <= h; fx++) {
for (long long fy = 1; fy <= y; fy++) {
if (fx == x && fy == y) {
continue;
}
dp[x][y][i][j] += dp[fx][fy][i][j - 1];
}
}
}
ans += dp[x][y][i][s[i].size()-1];
}
}
}
cout << ans << endl;
return 0;
}
为什么全部都 Rumtime Error 啊!
卡了好几天了。