bzoj3384&&1750: [Usaco2004 Nov]Apple Catching 接苹果

比较水的dp。

#include
#include
#include
using namespace std;
int maxx(int x,int y)
{
    return x>y?x:y;
}
int f[1005][35][2],a[1005],ans;
int main()
{
    int t,w;
    scanf("%d%d",&t,&w);
    for(int i=1;i<=t;i++)
    scanf("%d",&a[i]);
    for(int i=1;i<=t;i++)
    {
        f[i][0][0]=f[i-1][0][0]+(a[i]==1);
        f[i][0][1]=f[i-1][0][1]+(a[i]==2);
        for(int j=1;j<=w;j++)
        {
            f[i][j][0]=max(f[i-1][j-1][1],f[i-1][j][0])+(a[i]==1);
            f[i][j][1]=max(f[i-1][j-1][0],f[i-1][j][1])+(a[i]==2);
            ans=max(ans,max(f[i][j][0],f[i][j][1]));
        }
    }
    cout<

你可能感兴趣的:(bzoj,————dp)