(新年第一贴)OJ【3100】动态规划?

//2015新年快乐

目链接:OJ【3100】动态规划?

题意:一个一维数组,存储了n个正整数,下标依次为012.,n-1。输出以st,st+5,st+5*2,st+5*3,...,st+5*n为下标的数列和的最大值

分析:神马动规 神马跟神马 全被题名给坑了 标准最大子序列和问题的翻版 虽然考试的时候思路跟着题目走了。。。 当时也想到用最大子序列和的方法 当时这部分掌握得不算好 没试 就少了次AC的机会 要不就超过高数(王xx)了(跑偏了……) 之后写了遍最大子序列和交上去A了 对最大子序列和的求法算是刻骨铭心了 附最大子序列和思路:出现0/<0的情况就归零 找出和最大的情况(略简- -b

上代码:

#include 
   
   
    
    

using namespace std;

int num[100000];
int n;

int su(int st)//找最大子序列和
{
    int sum=num[st],k=0;
    int i;

    for(i=st;i
    
    
     
     sum) sum=k;
    }
    return sum;
}

int main()
{
    ios::sync_with_stdio(false);
    int i,sum;
    int MAX;
    while(cin>>n)
    {
        for(i=0;i
     
     
      
      >num[i];
        MAX=su(0);
        for(i=1;i
      
      
       
       <5;i++)//数组间隔为5 故找5次 同时注意n<5时的边界情况 寻找最大和
        {
            sum=su(i);

            if(sum>MAX) MAX=sum;
        }
        cout<
       
       
         < 
         
       
      
      
     
     
    
    
   
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值