暴力模拟 - P7798
这道题目教会了我们什么呢?学会看数据范围
一开始做这题没看数据范围搞了个
于是依照题意乖乖的写
粗略计算:这个算法的复杂度在最坏情况下是
代码:
#include <bits/stdc++.h>
using namespace std;
int n,c,w[1050];
int ans,cur,curr;
int main(void) {
cin>>n>>c;
for(int i=0;i<n;++i) cin>>w[i];
for(int st=0;st<n;++st) {
cur=curr=0;
for(int pos=st;pos<n;++pos) {
if(curr+w[pos]<=c) cur++,curr+=w[pos];
}
ans=max(ans,cur);
}
cout<<ans<<endl;
}
至于二分的做法是维护一个前缀和,枚举起点,然后在前缀和上二分查找相应的终点。这个做法是稳定的