hdu1003 最简单的动态规划,wrong了三天了,求助.....

[复制链接]
查看11 | 回复1 | 2011-5-21 11:49:06 | 显示全部楼层 |阅读模式
#includeiostream
usingnamespacestd;
main()
{
        intn[100];
        intsum[100];
        inti;
        intnum;
        intmax;
        intlizi;
        cinlizi;
        for(intk=0;klizi;k)
        {
        cinnum;
        for(i=0;inum;i)
        {
                cinn;
        }
        sum[0]=n[0];
        for(i=1;inum;i)
        {
                if(sum[i-1]=0)
                {
                        if(sum[i-1]n=0)
                        {
                                sum=sum[i-1]n;
                        }
                        else
                        {
                                sum=n;
                        }
                }
                else
                {
                        sum=n;
                }
        }
        max=-999999999;
        intx,y;
        for(i=0;inum;i)
        {
                if(summax)
                {
                        y=i;
                        max=sum;
                }
        }
        if(max0)
        {
                x=0;
                for(i=y;i=0;i--)
                {
                        if(sum0)
                        {
                                x=i1;
                                break;
                        }
                }
        }else
        {
                x=y;
        }
        cout\"Case\"k1\":\"endlmax\"\"x1\"\"y1endl;
        if(k!=lizi-1)
                coutendl;
        }
}
回复

使用道具 举报

千问 | 2011-5-21 11:49:06 | 显示全部楼层
#includeiostream
usingnamespacestd;
main()
{
        intn[100000];
        intsum[100000];//数组开大点
        inti;
        intnum;
        intmax;
        intlizi;
        cinlizi;
        for(intk=0;klizi;k)
        {
                cinnum;
                for(i=0;inum;i)
                {
                        cinn;
                }
                sum[0]=n[0];
                for(i=1;inum;i)
                {
                        if(sum[i-1]=0)
                        {
                                if(sum[i-1]n=0)
                                {
                                        sum=sum[i-1]n;
                                }
                                else
                                {
                                        sum=n;
                                }
                        }
                        else
                        {
                                sum=n;
                        }
                }
                max=-999999999;
                intx,y;
                for(i=0;inum;i)
                {
                        if(summax)
                        {
                                y=i;
                                max=sum;
                        }
                }
                if(max0)
                {
                        x=0;
                        for(i=y;i=0;i--)
                        {
                                if(sum0)
                                {
                                        x=i1;
                                        break;
                                }
                        }
                }else
                {
                        x=y;
                }
                cout\"Case\"k1\":\"endlmax\"\"x1\"\"y1endl;
                if(k!=lizi-1)
                        coutendl;
        }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行