问题标题: 酷町堂:1265找错!!!

0
0
已解决
曹博扬
曹博扬
初级天翼
初级天翼
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string>
using namespace std;
int a[10010],c=0,cnt;
int main(){
    int n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    for(int i=1;i<=n;i++){
        int s=0;
        while(s+a[c+1]<=k){
            c++;
            s+=a[c];
        }
        cnt++;
        if(c==n)
            break;
    }
    cout<<cnt;
    return 0;
}

求找错!!!


0
已采纳
朱优扬
朱优扬
中级天翼
中级天翼

你都做到贪心的题了?(其实我也做了一些-_-)

朱优扬在2020-10-14 20:15:56追加了内容

不过这道题……|||-_-

0
荣光峰
荣光峰
资深光能
资深光能

你不是前段时间才说过你才学到埃氏筛吗?怎么开始刷贪心了……难道是我记错了?

 

0
胡钰妍
胡钰妍
资深光能
资深光能

用maxn存当前组的总和,如果maxn比组允许的最大容量大,则说明这一组已经放不下这个元素了,就将组数加一

如果maxn比组允许的最大容量小,说明当前组还能放进这个元素,就放入,并且更新maxn

注:最终结果要加一

望采纳

0
杜智宸
杜智宸
中级光能
中级光能

全局变量定义:n,s,ans,sum,a[10010]

输入一样的

循环里判断:

  • if(sum+a[i]<=s){
  • sum+=a[i];
  • }
  • else{
  • ans++;
  • sum=a[i];
  • }

输出时ans+1

我要回答