【发布时间】:2015-07-16 14:09:02
【问题描述】:
第一个程序:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,taken,i,j,ans=0,t,num,k;
cin>>n>>t;
vector<int>a(n);
for(i=0;i<n;++i)
cin>>a[i];
i=0;j=0;
for(;i<n;++i)
{
if(i>j)
{
j=i;
k=0;
taken=0;
}
for(;j<n;++j)
{
if(taken+a[j]<=t)
{
taken+=a[j];
k++;
}
else
break;
}
ans=max(ans,k);
taken-=a[i];
k--;
}
cout<<ans;
return 0;
}
第二个节目:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,taken,i,j,ans=0,t,num,k;
cin>>n>>t;
vector<int>a(n);
for(i=0;i<n;++i)
cin>>a[i];
for(i=0;i<n;++i)
{
if(i>j)
{
j=i;
k=0;
taken=0;
}
for(j=0;j<n;++j)
{
if(taken+a[j]<=t)
{
taken+=a[j];
k++;
}
else
break;
}
ans=max(ans,k);
taken-=a[i];
k--;
}
cout<<ans;
return 0;
}
似乎这 2 个程序给出了 2 个不同的输出,这里有一个测试用例可以自己检查一下: 4 5 3 1 2 1
第一个输出“3”,第二个输出“1991243264” " 在 codeforces 测试上,而 2 个程序在 ideone 上给出相同的输出..有什么帮助吗?
【问题讨论】:
-
你为什么
#include <bits/stdc++.h>?这是谁教的?? :( -
<bits/stdc++.h>、using namespace std;和一堆早期声明。哎哟。 -
@LightnessRacesinOrbit 这Google result 让我畏缩。而且我认为它来自 CodeForces 也不是巧合。
-
我在竞争性编程中看到了这种趋势,人们包括
bits/stdc++.h,这样他们就不必关心他们是否包含了正确的头文件。我不支持它。 -
在比赛中节省时间是一种习惯。我现在通常会写这个,即使我不需要包含很多标题来解决特定问题,至于
using namespace std部分.. .当我第一次学习 c++ 时,我是这样学习的,所以这是一种习惯