题目描述

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

输入输出格式

输入格式:

第1行包含两个正整数N,MN,M,表示了数列A_iAi​的长度与每段和的最大值,第22行包含NN个空格隔开的非负整数A_iAi​,如题目所述。

输出格式:

一个正整数,输出最少划分的段数。

输入输出样例

输入样例#1: 复制

5 6
4 2 4 5 1

输出样例#1: 复制

3

说明

对于20\%20%的数据,有N≤10N≤10;

对于40\%40%的数据,有N≤1000N≤1000;

对于100\%100%的数据,有N≤100000,M≤10^9N≤100000,M≤109,MM大于所有数的最小值,A_iAi​之和不超过10^9109。

将数列如下划分:

[4][2 4][5 1][4][24][51]

第一段和为44,第22段和为66,第33段和为66均满足和不超过M=6M=6,并可以证明33是最少划分的段数。

题意:

把n个数列分成连续的m组,每一组的和不超过m

思路:

只要这一段连续的数列的和不超过m就尽量让他们成为一组。一个组能并多少并多少,一个数能尽量早被归进一个组就尽量早。

 1 //#include<bits/stdc++.h>
 2 #include<set>
 3 #include<iostream>
 4 #include<stdio.h>
 5 #include<stdlib.h>
 6 #include<cstring>
 7 #include<queue>
 8 #include<stack>
 9 #include<algorithm>
10
11 using namespace std;
12
13 int n, m;
14 const int maxn = 1e5 + 5;
15 int a[maxn];
16
17 int main()
18 {
19     scanf("%d%d", &n, &m);
20     for(int i = 0; i < n; i++){
21         scanf("%d", &a[i]);
22     }
23     int cnt = 0, tsum = 0;
24     for(int i = 0; i < n; i++){
25         if(tsum + a[i] <= m){
26             tsum += a[i];
27         }
28         else{
29             tsum = a[i];
30             cnt++;
31         }
32     }
33     printf("%d\n", cnt + 1);
34     return 0;
35 }

转载于:https://www.cnblogs.com/wyboooo/p/10279394.html

洛谷 P1181数列分段SectionI 【贪心】相关推荐

  1. 洛谷——P1181 数列分段Section I

    题目描述 对于给定的一个长度为NN的正整数数列A_iAi​,现要将其分成连续的若干段,并且每段和不超过MM(可以等于MM),问最少能将其分成多少段使得满足要求. 输入输出格式 输入格式: 第1行包含两 ...

  2. 洛谷P1182 数列分段Section II 二分答案

    洛谷P1182 数列分段Section II 二分答案 题意:将 n 个 数 分为 m段 求一种方案,使这m段中最大的和 最小 额..可能有点拗口,其实就是说每一种方案,都有对应的 每段和的最大值, ...

  3. 洛谷P1182 数列分段 Section II(二分+贪心)

    题目描述 对于给定的一个长度为N的正整数数列 A1∼NA _{1∼N}A1∼N​,现要将其分成 M(M≤N)M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一 ...

  4. 洛谷P1182 数列分段`Section II`

    . . . . . 分析 首先,分析题目,求最大值的最小化,直接联想到二分 然而关键是要怎么去高效的check 我们考虑一个贪心的思路,能加的就加上,不能则新开一段,所以对于二分的值x,我们从数列a从 ...

  5. P1181 数列分段Section I

    传送门:洛谷 P1181 数列分段 AC的代码如下: #include<iostream> #include<cstdio> using namespace std; int ...

  6. 洛谷 P1356 数列的整除性

    [题目链接] 洛谷 P1356 数列的整除性 [题目考点] 1. 动态规划:线性动规 [解题思路] 本题与该题几乎是同一个问题: 信息学奥赛一本通 1195:判断整除 | OpenJudge 2.6 ...

  7. 数列分段Section I(洛谷-P1181)

    题目描述 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入输出格式 输入格式: 输入文件的第1行包含两 ...

  8. 数列分段(洛谷P1181题题解,Java语言描述)

    题目要求 P1181题目链接 分析 这题没啥复杂的,保持计数和必要的更新就行了-- AC代码(Java语言描述) import java.util.Scanner;public class Main ...

  9. 洛谷P1016 旅行家的预算 贪心

    这道题就是贪心 1.在第一个加油站的时候,如果在加满油能够到达的加油站中有一个加油站的钱比自己的少(其实等于也行),那就 加足够到那个车站的油,直接去那个车站 2.这些车站中所有都比自己大,那就找一个 ...

  10. 洛谷 P1208混合牛奶【贪心】

    题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是 ...

最新文章

  1. 2013年中国数据库大会PPT
  2. ALEIDoc EDI(2)--一般流程
  3. 通过追源码解决:xmlrpc.client设定请求超时时间
  4. java中事务实例,Java Spring 事务管理器入门例子教程(TranscationManager)
  5. onenetsim定位功能吗_微信小程序新增后台定位功能,你会卸载地图APP用微信导航吗...
  6. Spring Tool Suite 4安装Lombok
  7. IDEA本地项目与SVN项目关联
  8. ie8 js未指明的错误_win7系统IE8,js报错:“属性值中不能使用字符''。”求帮助。...
  9. redis 系列24 哨兵Sentinel (中)
  10. 信息安全系统设计基础实验二:固件设计(20135229,20135234)
  11. 翻译的艺术 —— 专有名词(广告词、国外品牌、语言等)
  12. 使用struts中的DisPatchAction的时候需要用到的jar包
  13. Mac 让 iTerm2 记住用户名密码 expect 脚本
  14. Atitit 互联网技术公司防爆指南技术规范标准流程 30个危险物品
  15. Lightroom Classic CC 2019 for Mac永久破解激活方法(含lr cc 2019破解补丁)
  16. iOS14.7 验证失败,因为您不再连接到互联网
  17. BP神经网络推导(两个隐藏层)
  18. Android中相册的实现
  19. 高仿英雄联盟游戏网页制作作业 英雄联盟LOL游戏HTML网页设计模板 简单学生网页设计 静态HTML CSS网站制作成品
  20. java去掉首尾字符_去掉字符串首尾指定的字符或空格

热门文章

  1. 拓端tecdat|R语言使用Rasch模型分析学生答题能力
  2. python实现池化操作
  3. Android-广播
  4. 操作系统 读者-写者问题
  5. matlab里substring,ADT课堂第六讲-String Functions-substring
  6. leetcode——给你两个非空链接表,代表两个非负整数。 数字以相反的顺序存储,并且它们的每个节点包含单个数字。 将两个数字相加,并将其作为链表返回。
  7. Pandas常用函数diff和shift函数学习使用
  8. python之word2vec实战学习
  9. python列表用来有序存放一组_Python期末习题练习
  10. default value mysql_Mysql Field * doesn't have a default value解决方法