算法 c++-杭电1087,,dp问题,求解答!

问题描述

杭电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在哪里啊、、、、

时间: 2024-11-01 23:32:43

算法 c++-杭电1087,,dp问题,求解答!的相关文章

算法-C/C++杭电1501题Wooden sticks 求挑错

问题描述 C/C++杭电1501题Wooden sticks 求挑错 DescriptionThere is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one by one fashion. It needs some time called setup

测试-杭电c入门简单问题 求指导一下

问题描述 杭电c入门简单问题 求指导一下 题目如下输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等. Input输入数据有多组,每组占一行,每行的第一个数字为n接着是n个整数,n=0表示输入数据的结束,不做处理. Output对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开.每个测试实例占一行. Sample Input3 3 -4 24 0 1 2 -30 Sample Output-4 3 2-3 2 1 0 Aut

acm-关于杭电ACM2031 进制转换感觉找不出自己的错误,求指出

问题描述 关于杭电ACM2031 进制转换感觉找不出自己的错误,求指出 #includeint main(){ long nr; char a[10000]; while(scanf(""%d%d""&n&r) == 2) { if(n == 0) printf(""0 ""); else { int i = 0; if(n while(n > 0) { a[i++] = n%r; n=n/r; } in

代码-杭电ACM1096,一直有错误,求帮忙

问题描述 杭电ACM1096,一直有错误,求帮忙 我的代码 #include int main(){ int n, i; int a, b; int x, sum; while(scanf("%d", &n) != EOF){ for (i = 0; i < n; i++){ scanf("%d", &a); for (b = 0; b < a; b++){ sum = 0; scanf("%d", &x);

算法-最近点对问题,我用分治写的,和正确的基本一样为什么我的会超时?杭电1007

问题描述 最近点对问题,我用分治写的,和正确的基本一样为什么我的会超时?杭电1007 高手帮忙看看,已经弄了很长时间了还是看不出来哪里有问题,感觉写得和网上的一样呀. #include<iostream>#include<cmath>using namespace std;void kuaipai(double* double* int int);double zuijindian(double* double* int int);double x[100000] y[100000

acm-求问杭电ACM2010水仙花数,我的这个答案为什么是错的

问题描述 求问杭电ACM2010水仙花数,我的这个答案为什么是错的 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int m=0; int n=0; while(in.hasNext()){ m=in.nextInt(); n=in.nextInt(); if(m<n){ narcissus(m,

杭电ACM 2000-&amp;gt;2099 100道题 详细解题报告出炉

我去年暑假花了5天,把杭电ACM网站上2000到2099这100道题全AC了,又花了10来天精心写解题报告.里面包括题目.解题思路.编程技巧以及参考源码.所有代码都是使用C/C++写的. 最近整理资料时无意间发现,打包成chm文件和大家分享.我已经上传到CSDN上了.下载地址:http://download.csdn.net/source/492194 也可到我的Google Sites上下载. 题号 题名 题号 题名 2000 ASCII码排序 2001 计算两点间的距离 2002 计算球体积

c语言-杭电oj 2014题 代码不对 不知道哪里错了

问题描述 杭电oj 2014题 代码不对 不知道哪里错了 偶数求和 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 65195 Accepted Submission(s): 27929 Problem Description 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,

杭电oj2000题, c语言,我的程序不对,那应该是什么样子的

问题描述 杭电oj2000题, c语言,我的程序不对,那应该是什么样子的 #include "stdio.h" int main() { char max,x,y,z; scanf("%c%c%c",&x,&y,&z); while( scanf(%c%c%c,&x,&y,&z)!=EOF) { if( 'x'>'y' ) if( 'y'>'z') printf("%c %c %cn",