zoukankan      html  css  js  c++  java
  • hdu 1003 Max Sum


    下面模拟过程:

    1.首先,读取第一个数据,令now和max等于第一个数据,初始化first,last,x位置

    2.然后,读入第二个数据,判断 ①. 若是now+next<next,表示当前读入的数据比之前存储的加上当前的还大,说明可以在当前另外开始记录,更新now=next ②. 反之,则表示之前的数据和在增大,更新now=now+next

    3.之后,把now跟max做比较,更新或者不更新max的值,记录起始、末了位置

    4.循环2~3步骤,直至读取数据完毕。

     1 #include<iostream>
     2 using namespace std;
     3 int main()
     4 {
     5     int n,i,m,max,now,j,next,first,last,x;
     6     cin>>n;
     7     for(i=1;i<=n;i++)
     8     {
     9         cin>>m;
    10         cin>>next;
    11         now=max=next;
    12         last=1;first=1;x=1;
    13         for(j=2;j<=m;j++)
    14         {
    15             cin>>next;
    16             if(now+next<next)
    17             {
    18                 now=next;
    19                 x=j;
    20                 
    21             }
    22             else
    23             {
    24                 now+=next;
    25             }
    26             if(now>max)
    27             {
    28                 max=now;
    29                 first=x;
    30                 last=j;
    31             }
    32         }
    33         cout<<"Case "<<i<<":"<<endl;
    34         cout<<max<<" "<<first<<" "<<last<<endl;
    35         if(i!=n)
    36         cout<<endl;
    37     }
    38 } 
  • 相关阅读:
    Cordova-conifg.xml配置
    Cordova插件开发
    android shape的使用
    Cordova
    性能优化
    ionic默认样式android和ios差异
    在IIS中部署ASP.NET 5应用程序遭遇的问题
    Ionic命令大全
    IOS开发
    Cordova 8 架构使用sqlite
  • 原文地址:https://www.cnblogs.com/xurenwen/p/3963636.html
Copyright © 2011-2022 走看看