zoukankan      html  css  js  c++  java
  • 关于dp初始化问题

    // 前缀和dp优化1
    #include<bits/stdc++.h>
    using namespace std;

    int main()
    {
        for(int u=1,i=1;i<=n;i++)
        {
           while(s[i]-s[u]>le) u++;
           p[i]=u;    
        }
        for(int i=1;i<=n&&s[i]<=le;i++) f[0][i]=1;
        for(int j=1;j<=m;j++) 
    {
        for(int i=1;i<=n;i++) sum[i-1][j]=sum[i-1][j-1]+f[i-1][j];
        for(int i=1;i<=n;i++)  f[i][j]=.....

    }

    //滚动数组DP赋初值  nkoj  noip 2015 字串

    for(int i=0;i<=n;i++)
    { f[0][i][0]=1;
    sum[0][i][0]=1;
    }
    for(int t=1;t<=k;t++)
    {
    memset(f[t&1],0,sizeof(f[t&1]));
    memset(sum[t&1],0,sizeof(sum[t&1]));
       for(int i=1;i<=n;i++)
          for(int j=1;j<=m;j++)
            {
           
            if(a[i-1]==b[j-1])
            {
            f[t&1][i][j]=sum[(t-1)&1][i-1][j-1]%mod;
            if(a[i-2]==b[j-2])
            {
            f[t&1][i][j]=(f[t&1][i][j]+f[t&1][i-1][j-1])%mod;
            }
           
                   
            } sum[t&1][i][j]=sum[t&1][i-1][j]%mod+f[t&1][i][j]%mod;
        }
            }
    cout<<sum[k&1][n][m]%mod<<endl;


    //滚动数组初始化2

    在循环内赋初值

    //前缀和赋初值2

    第一个或第0个赋初值

    刀剑映出了战士的心。而我的心,漆黑且残破
  • 相关阅读:
    Centos7下永久修改mysql5.6最大连接数
    关于Linux fontconfig 字体库的坑
    回收maven私仓过期垃圾数据
    conda python虚拟环境
    小程序分享H5页面
    会看以前的邮箱
    快乐的小程序
    和运营开会的知道的一些点
    V-Distpicker不能完整显示内容
    VUE随手记坑
  • 原文地址:https://www.cnblogs.com/OIEREDSION/p/11048549.html
Copyright © 2011-2022 走看看