zoukankan      html  css  js  c++  java
  • loj10006数列分段

    题目描述

    对于给定的一个长度为 N 的正整数数列 A,现要将其分成连续的若干段,并且每段和不超过 M(可以等于 M),问最少能将其分成多少段使得满足要求。

    输入格式

    第一行包含两个正整数 N,M表示了数列 A 的长度与每段和的最大值;

    第二行包含 N 个空格隔开的非负整数 

    输出格式

    输出文件仅包含一个正整数,输出最少划分的段数。

    样例

    样例输入

    5 6
    4 2 4 5 1
    

    样例输出

    3
    

    数据范围与提示

    对于 100% 的数据,有 N<=100000,M<1E9,M 大于所有数的最大值。

    ___________________________

    简单贪心

    ___________________________

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=1e5+10;
     4 int n,m;
     5 
     6 int main()
     7 {
     8     scanf("%d%d",&n,&m);
     9     long long sm=0,ans=0;
    10     for(int x,i=1;i<=n;++i)
    11     {
    12         scanf("%d",&x);
    13         if(sm+x>m)
    14         {
    15             ans++;sm=x;
    16         }
    17         else
    18             sm+=x;
    19     }
    20     if(sm)++ans;
    21     cout<<ans;
    22     return 0;
    23 }
    View Code
  • 相关阅读:
    MySQL日志系统
    MySQL基础架构
    Java操作XML牛逼利器JDOM&DOM4J
    SAX方式解析XML
    DOM方式解析XML
    Jquery Ajax
    Jquery动画效果
    angular6新建项目
    mysql命令行使用
    git常用命令
  • 原文地址:https://www.cnblogs.com/gryzy/p/13960967.html
Copyright © 2011-2022 走看看