题解 P1181 【数列分段Section I】
很简单的一道暴力题这道题有两种方法,一种是边读边做,一种是读完数组再做。这两种方法对新手来说都很简单,不过边读边做相对简单一点。
注意:ans一开始的初值必须为1,因为最后一段是加不进去的,所以初值一定要为1。
代码如下:
#include <cstdio>//头文件准备
using namespace std;
int n,m,ans=1;//ans的初值要为1
int main(){
scanf ("%d %d",&n,&m);
int k=0;
while (n--){//完全的边读边做
int a;
scanf ("%d",&a);//读入a
if (k+a<=m){//判断k+a是否大于m,如果大于,ans要加1,然后a独立为一段;如果小于等于,k就要加上a
k+=a;
}
else{
ans++;
k=a;
}
}
printf ("%d\n",ans);//做完之后输出,结束
while (1);//反抄袭
}
#珍爱生命,拒绝抄袭!