五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

NOIP2015提高組--子串

2023-06-12 23:22 作者:北海沒有WA  | 我要投稿
#include <iostream>
#include <cmath>
#include <cstring>
#include <algorithm>

const int MAXN = 1000;
const int MAXM = 200;
const int MAXK = 200;
const int MOD = 1e9 + 7;

int main() {
    int n, m, k;
    scanf("%d %d %d", &n, &m, &k);

    static char a[MAXN + 1], b[MAXM + 1];
    scanf("%s\n%s", a, b);

    static int f[2][MAXM + 1][MAXK + 1], g[2][MAXM + 1][MAXK + 1];
    g[0][0][0] = 1;
    for (int i = 1; i <= n; i++) {
        const int curr = i % 2, prev = !curr;
        memset(f[curr], 0, sizeof(f[curr]));
        memset(g[curr], 0, sizeof(g[curr]));

        g[curr][0][0] = f[curr][0][0] = 1;
        for (int j = 1; j <= m; j++) {
            for (int t = 1; t <= std::min(j, k); t++) {
                if (a[i - 1] == b[j - 1]) {
                    f[curr][j][t] = (f[prev][j - 1][t] + g[prev][j - 1][t - 1]) % MOD;
                    g[curr][j][t] = (g[prev][j][t] + f[curr][j][t]) % MOD;
#ifdef DBG
                    printf("g[%d][%d][%d] = %d\n", i, j, t, g[curr][j][t]);
                    printf("f[%d][%d][%d] = %d\n", i, j, t, f[curr][j][t]);
#endif
                } else {
                    f[curr][j][t] = 0;
                    g[curr][j][t] = g[prev][j][t];
                }
            }
        }
    }

    printf("%d\n", g[n % 2][m][k]);

    return 0;
}


NOIP2015提高組--子串的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
论坛| 安福县| 兴城市| 和政县| 东阳市| 乃东县| 共和县| 大邑县| 马鞍山市| 沈丘县| 晋中市| 泰宁县| 醴陵市| 富民县| 沙坪坝区| 集贤县| 图木舒克市| 确山县| 兰坪| 崇信县| 永胜县| 奉化市| 株洲市| 赤水市| 文登市| 普兰县| 涪陵区| 太保市| 施秉县| 宿松县| 巴马| 芜湖县| 盖州市| 绥德县| 鄂托克旗| 嘉鱼县| 拉孜县| 吴江市| 高平市| 石城县| 泽库县|