• 简单的动态规划dp


    DieIng五一要去旅游,旅游区的景点道路分布如图:欣赏景点的道路为东西走向,每条道路有DieIng对它的喜爱值;南北走向为林间小道,供休息用。
    由于五一游客较多,旅游区规定欣赏景点的道路只能单向行走,自东向西走;林间小道可双向行走。
    DieIng要你帮他设计路线(可以从任意点开始,任意点结束),使得他能玩得最high。(喜爱值的总和最大)

    Input

    第一行是两个整数N(0 <= N <= 10) 和M(0 <= M <= 1000000), 代表旅游区的布局,N*M
    接下来N行,每行有M个整数favorite(-100 <= favorite<=100)
    N,M==0结束。

    Output

    输出DieIng能得到最大的喜爱值总和。

    Sample Input

    3 4
    5 -4 6 14
    -2 -48 11 -8
    9 -13 4 8
    0 0
    

    Sample Output

    30

    每列求最大值后得到一维数组,然后就是求最大子串的问题了

    #include<iostream>
    using namespace std;
    long int s[1000000];
    int main()
    {
    long int i,j,sum,max,m,n,a,k;
    while(scanf("%ld %ld",&n,&m)!=EOF&&n&&m)
    {
    max=-101,sum=0;
    k=1;
    memset(s,0,m*sizeof(long int));
    for(i=0;i<n;i++)
    {
    if(k)
    {
    for(j=0;j<m;j++)
    scanf("%ld",&s[j]);
    k=0;
    }
    else
    for(j=0;j<m;j++)
    {
    scanf("%ld",&a);
    if(s[j]<a)
    s[j]=a;
    }
    }
    for(i=m-1;i>=0;i--)
    {
    sum+=s[i];
    if(sum>max)
    max=sum;
    if(sum<0)
    sum=0;
    }
    if(max>0)
    printf("%ld\n",max);
    else
    printf("0\n");
    }
    return 0;
    }



  • 相关阅读:
    vue
    vim 使用
    ssh 免密码登录
    shell 监控
    shell top
    使用网络技术---WebView
    安卓数据存储
    模块
    面向对象
    文件
  • 原文地址:https://www.cnblogs.com/bersaty/p/2277154.html
Copyright © 2020-2023  润新知