和最大的子序列(简单dp)

来源:互联网 发布:unity3d游戏开发流程 编辑:程序博客网 时间:2024/06/06 08:30

题目来源:[NWPU][2014][TRN][6]动态规划第一讲——简单线性dp D题

http://vjudge.net/contest/view.action?cid=49759#problem/D

题目:给定一个有限数列,找出一个子序列使得它们的和加起来不小于别的任意一个子序列,如果有多个,则第一个为所求,并确定所求的子序列第一个和最后一个元素的脚标

            ,用空行隔开各组输出,输入的数据最大为1000,最小为-1000,最多一个数列有100000个数据

作者:npufz

代码:

#include<iostream>#include <cstring>#include <cstdio>using namespace std;int main(){int  a[100003],t,n,i,j,k,jb;cin>>t;for(k=1;k<=t;k++){ cin>>n;for(i=0;i<n;i++)    scanf("%d",&a[i]);for(i=1;i<n;i++)    if(a[i-1]>=0) a[i]+=a[i-1];j=-20000;for(i=0;i<n;i++)    if(a[i]>j) {j=a[i];jb=i;}    i=jb;    for(;i>=0&&a[i]>=0;i--);   cout<<"Case "<<k<<":"<<endl;   if(k<t){    if(a[jb]<0) cout<<j<<" "<<i+1<<" "<<jb+1<<endl<<endl;   else  cout<<j<<" "<<i+2<<" "<<jb+1<<endl<<endl;}   else { if(a[jb]<0) cout<<j<<" "<<i+1<<" "<<jb+1<<endl;   else  cout<<j<<" "<<i+2<<" "<<jb+1<<endl;}}return 0;}

反思:对大批数据的调入,SCANF比CIN省时,一开始没有考虑对最大值为负值的情况,就造成了角标判断错误,改正后竟然会是PRESENTATION ERROR,后来发现原来是最后一组数据也多了一个空行出来,题意是要求用空行把各组结果分开而没有说每组数据输出后有一个空行


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 七个月的宝宝俩个蛋蛋都疝气怎么办 电脑有些网站看视频不能全屏怎么办 小米滑板车坏了售后不保修怎么办 红米4a电池不耐用怎么办 华为手机买个别人退货的怎么办 京东购物怎么查订单查询不到怎么办 退款了又收到货怎么办快递打电话 快递未收到货能退款商家拒绝怎么办 黑色牛仔裤有一块洗白了怎么办 黑色牛仔裤被洗衣液烧了怎么办 在蘑菇街退鞋子商家非说脏了怎么办 牛皮屑怎么办ke靠成都银康 微信订阅号取消关注之后还在怎么办 腾讯新闻红包领取说帐号异常怎么办 计算机职弥报名没选模块怎么办 有人用我手机注册有赞了怎么办 一件代发别人的货被投诉了怎么办 淘宝极速退款后商家拒收快递怎么办 运费险退到天猫垫付账户了怎么办 淘宝卖家食品有问题该怎么办 美团外卖不要辣椒给放了怎么办 旺旺卖家拒收我的消息怎么办 淘宝清空购物车大奖到上限了怎么办 游戏无响应除了退出还能怎么办 淘宝给差评了卖家一直打电话怎么办 电脑说带宽问题无法观看视频怎么办 手机淘宝上的购买信息删除了怎么办 为什么支付宝有钱淘宝付不了怎么办 苹果平板电脑上的淘宝点不开怎么办 淘宝付了两次款只有一个订单怎么办 淘宝付款显示支付宝账号异常怎么办 手机老卡换新卡淘宝付不了款怎么办 淘宝买东西退款卖家拒绝退款怎么办 淘宝店铺收藏图片怎么点不了怎么办 手机淘宝显示用户被限制登录怎么办 淘宝设置登录密码原密码忘了怎么办 斑马智行淘宝号换没法登录了怎么办 淘宝卖家手机版显示宝贝不全怎么办 在电脑上登的淘宝账号退不了怎么办 淘宝买家退款不退货写假货怎么办 淘宝卖家已发布商品没货了怎么办