【悬赏关币一枚】求助!!!
  • 板块灌水区
  • 楼主_VirtualPoint_
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/5/17 18:04
  • 上次更新2024/5/17 20:45:38
查看原帖
【悬赏关币一枚】求助!!!
794507
_VirtualPoint_楼主2024/5/17 18:04

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

站外题

#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 啊!

卡了好几天了。

2024/5/17 18:04
加载中...