hdu1003 Max Sum(最大子串)
2024-09-10 23:44:51
https://vjudge.net/problem/HDU-1003
注意考虑如果全为负的情况,特判。
还有输出格式,最后一个输出不用再空行。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#define lson l, m, rt<<1
#define rson m+1, r, rt<<1|1
#define IO ios::sync_with_stdio(false);cin.tie(0);
#define INF 1e9
typedef long long ll;
using namespace std;
int n, m, a[];
int main()
{
IO;
cin >> n;
int kase=;
while(n--){
cin >> m;
for(int i = ; i < m; i++){
cin >> a[i];
}
int sum = , maxm = -INF;
int from = ;
int ans1 = , ans2 = -;
for(int i = ; i < m; i++){
sum += a[i];
if(sum < ){
sum = ;
from = i+;
}
else{
if(sum > maxm){
maxm = sum;
ans1 = from;
ans2 = i;
}
}
}
cout << "Case " << ++kase << ":" << endl;
if(ans2 == -){//sum一直小于零,每位<0
maxm = -INF;
for(int i = ; i < m; i++){
if(a[i] > maxm){
maxm = a[i];
ans1 = i; ans2 = i;
}
}
cout << maxm << " " << ans1+ << " " << ans2+ << endl;
}
else
cout << maxm << " " << ans1+ << " " << ans2+ << endl;
if(n != ) cout << endl;
}
return ;
}
最新文章
- C# 生成字符串的 CheckSum
- [转]TextView maxWidth maxLength maxEms 区别
- 一些实用的Windows注册表
- 关于vue.js的计算属性练习代码
- Ubuntu远程开机 (Wake on Lan)
- p范数(p norm)
- HTML5应用开发:JavaScript库iScroll教程
- rpc,客户端与NameNode通信的过程
- [转]tomcat部署
- Java接口简单理解
- 【LOJ】#2115. 「HNOI2015」落忆枫音
- uri.js的用法事例
- 太平洋网络ip地址查询接口使用,返回json格式,默认返回jsonp
- Deep Learning基础--word2vec 中的数学原理详解
- docker shipyard 问题
- Centos 7.0设置/etc/rc.local无效问题解决
- 【推导】Codeforces Round #364 (Div. 2) D. As Fast As Possible
- 几大PHP套件
- STM32呼吸灯
- 【连载】redis库存操作,分布式锁的四种实现方式[二]--基于Redisson实现分布式锁