杭电acm1003 超时怎么解决

c++提交后总是显示TimeLimitExceeded想不出可以怎么改进了,求大神指教#include<iostream>#include<cstring>usingna... c++ 提交后总是显示 Time Limit Exceeded 想不出可以怎么改进了,求大神指教

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int q=1;
int t;
cin>>t;
while(t--)
{

int a[100002];
int n;
int i=1;
cin>>n;
while(i<=n)
{
cin>>a[i];
i++;
}
int sum;
int j=1;
int e;
int s;
i=1;
int max=0;
for(i=1;i<=n;i++)
{
sum=a[i]+a[i+1];
for(++i;i<=n;)
{
if(max<sum)
{
max=sum;
e=i;
s=j;
}
sum=sum+a[++i];
}
i=j;
j++;
}
cout<<"Case "<<q<<':'<<endl;
cout<<max<<'\0'<<s<<'\0'<<e<<endl;
q++;
cout<<endl;
}
}
展开
 我来答
xzenith
2014-05-22 · 超过23用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:34.1万
展开全部

明显是算法不行,这个题可以在O(1)内解决,这样试试,遍历数组,从第一项加起,如果sum值小于0,sum又初始化成0,计算下一项。

第二个解法是利用分治法,将array分成两半,subarray要么在左,或中间,或右。之后递归应该可以解决。


GamryRaman
2023-05-24 广告
电化学工作站chi760e连接不上的原因和解决方法如下:1. 网络问题:请检查您的网络连接是否正常,尝试重新连接或者更换网络环境,例如使用其他WiFi或者移动网络。2. 服务器故障或维护:如果电化学工作站使用的是远程服务器,可能是由于服务器... 点击进入详情页
本回答由GamryRaman提供
Rankabc
2014-05-21 · TA获得超过3559个赞
知道大有可为答主
回答量:3705
采纳率:59%
帮助的人:1038万
展开全部
int a[100002];这么大的数组就有问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
porker2008
2014-05-21 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
算法本身就有问题,并不是超时的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式