文章

2

粉丝

134

获赞

0

访问

10.3k

头像
绝了,直接给我玩超时了
P1692 南京大学2019年机试题
发布于2022年3月30日 17:15
阅读数 5.4k

这个题是dp的模板题,  力扣115原题

 

```

#include <iostream>
#include <vector>

using namespace std;
const long long haha=1000000007;

int main(){
    int num;
    cin>>num;
    while(num--){
        string a,b;
        cin>>a>>b;
        int len1=b.length();
        int len2=a.length();

        //短的是 b  len1  第一维

        vector<vector<long long> > dp(len2+1,vector<long long> (len1+1,0));
        for(int j=0;j<=len2;j++){
            dp[j][0]=1;
        }

        for(int i=1;i<=len2;i++) {
            for (int j = 1; j <= len1; j++) {
                if (a[i - 1] == b[j - 1]) {
                    dp[i][j] = (dp[i - 1][j]%haha + dp[i - 1][j - 1]%haha)%haha;
                } else {
                    dp[i][j] = dp[i - 1][j ]%haha;
                }
            }
        }
        cout<<dp[len2][len1]%haha<<endl;
    }
    
}

```

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发