zoukankan      html  css  js  c++  java
  • UVA 507 Jill Rides Again

    UVA_507

    这个题目实际上就是在求一个最大子串和。由于具有最大和的子串是具有这样的性质的,第一项不为负,并且,从第一项开始累加,中间不会有中间结果为负。因为一旦中间结果为负,我们是可以抛弃前半段的,因此就矛盾了。

    然后我们便根据这个特征去寻找具有最大和的子串即可。

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    int i,j,k,t,n,tt,x,y,tx,sum,ans;
    scanf("%d",&t);
    for(tt=0;tt<t;tt++)
    {
    scanf("%d",&n);
    tx=x=ans=sum=0;
    for(i=0;i<n-1;i++)
    {
    scanf("%d",&k);
    sum+=k;
    if(sum<0)
    {
    tx=i+1;
    sum=0;
    continue;
    }
    if(sum>ans||(sum==ans&&tx==x))
    {
    x=tx;
    y=i;
    ans=sum;
    }
    }
    if(ans==0)
    printf("Route %d has no nice parts\n",tt+1);
    else
    printf("The nicest part of route %d is between stops %d and %d\n",tt+1,x+1,y+2);
    }
    return 0;
    }


  • 相关阅读:
    响应式布局
    CSS3过渡
    CSS3背景
    CSS渐变
    CSS3选择器
    CSS3
    自定义指令
    键盘修饰符
    过滤器
    v-if与v-show区别
  • 原文地址:https://www.cnblogs.com/staginner/p/2194869.html
Copyright © 2011-2022 走看看