2 u010770184 u010770184 于 2013.10.21 22:36 提问

杭电1087,,dp问题,求解答!

#include
using namespace std;
int n;
int a[10005];
int vis[10005];

int dp(int n)
{
if(vis[n]!=-1)
return vis[n];
vis[n] = 0;
int i;
for(i= n-1;i>=0;i--)
{
if(i==-1)
return 0;

    dp(i);
    if(vis[i]>=vis[n])
        vis[n] = vis[i];

    if(a[i]<a[n])
    {

        int t = 0;;
        t += vis[i]+a[n];
        if(t>vis[n])
            vis[n] = t;
    }
}

}

int main()
{
while(1)
{
memset(a,0,sizeof(a));
memset(vis,-1,sizeof(vis));
cin>>n;

    if(n==0)
        break;
    else
    {
        int i;
        for(i = 1;i<=n;i++)
        {
            cin>>a[i];
        }
        dp(n);
    }

    cout<<vis[n]<<endl;
}
return 0;

}

不知道wa在哪里啊、、、、

Csdn user default icon
上传中...
上传图片
插入图片