洛谷 P1181数列分段SectionI 【贪心】
题目描述
对于给定的一个长度为NN的正整数数列A_iAi,现要将其分成连续的若干段,并且每段和不超过MM(可以等于MM),问最少能将其分成多少段使得满足要求。
输入输出格式
输入格式:
第1行包含两个正整数N,MN,M,表示了数列A_iAi的长度与每段和的最大值,第22行包含NN个空格隔开的非负整数A_iAi,如题目所述。
输出格式:
一个正整数,输出最少划分的段数。
输入输出样例
5 6 4 2 4 5 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 【贪心】相关推荐
- 洛谷——P1181 数列分段Section I
题目描述 对于给定的一个长度为NN的正整数数列A_iAi,现要将其分成连续的若干段,并且每段和不超过MM(可以等于MM),问最少能将其分成多少段使得满足要求. 输入输出格式 输入格式: 第1行包含两 ...
- 洛谷P1182 数列分段Section II 二分答案
洛谷P1182 数列分段Section II 二分答案 题意:将 n 个 数 分为 m段 求一种方案,使这m段中最大的和 最小 额..可能有点拗口,其实就是说每一种方案,都有对应的 每段和的最大值, ...
- 洛谷P1182 数列分段 Section II(二分+贪心)
题目描述 对于给定的一个长度为N的正整数数列 A1∼NA _{1∼N}A1∼N,现要将其分成 M(M≤N)M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一 ...
- 洛谷P1182 数列分段`Section II`
. . . . . 分析 首先,分析题目,求最大值的最小化,直接联想到二分 然而关键是要怎么去高效的check 我们考虑一个贪心的思路,能加的就加上,不能则新开一段,所以对于二分的值x,我们从数列a从 ...
- P1181 数列分段Section I
传送门:洛谷 P1181 数列分段 AC的代码如下: #include<iostream> #include<cstdio> using namespace std; int ...
- 洛谷 P1356 数列的整除性
[题目链接] 洛谷 P1356 数列的整除性 [题目考点] 1. 动态规划:线性动规 [解题思路] 本题与该题几乎是同一个问题: 信息学奥赛一本通 1195:判断整除 | OpenJudge 2.6 ...
- 数列分段Section I(洛谷-P1181)
题目描述 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入输出格式 输入格式: 输入文件的第1行包含两 ...
- 数列分段(洛谷P1181题题解,Java语言描述)
题目要求 P1181题目链接 分析 这题没啥复杂的,保持计数和必要的更新就行了-- AC代码(Java语言描述) import java.util.Scanner;public class Main ...
- 洛谷P1016 旅行家的预算 贪心
这道题就是贪心 1.在第一个加油站的时候,如果在加满油能够到达的加油站中有一个加油站的钱比自己的少(其实等于也行),那就 加足够到那个车站的油,直接去那个车站 2.这些车站中所有都比自己大,那就找一个 ...
- 洛谷 P1208混合牛奶【贪心】
题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是 ...
最新文章
- 2013年中国数据库大会PPT
- ALEIDoc EDI(2)--一般流程
- 通过追源码解决:xmlrpc.client设定请求超时时间
- java中事务实例,Java Spring 事务管理器入门例子教程(TranscationManager)
- onenetsim定位功能吗_微信小程序新增后台定位功能,你会卸载地图APP用微信导航吗...
- Spring Tool Suite 4安装Lombok
- IDEA本地项目与SVN项目关联
- ie8 js未指明的错误_win7系统IE8,js报错:“属性值中不能使用字符''。”求帮助。...
- redis 系列24 哨兵Sentinel (中)
- 信息安全系统设计基础实验二:固件设计(20135229,20135234)
- 翻译的艺术 —— 专有名词(广告词、国外品牌、语言等)
- 使用struts中的DisPatchAction的时候需要用到的jar包
- Mac 让 iTerm2 记住用户名密码 expect 脚本
- Atitit 互联网技术公司防爆指南技术规范标准流程 30个危险物品
- Lightroom Classic CC 2019 for Mac永久破解激活方法(含lr cc 2019破解补丁)
- iOS14.7 验证失败,因为您不再连接到互联网
- BP神经网络推导(两个隐藏层)
- Android中相册的实现
- 高仿英雄联盟游戏网页制作作业 英雄联盟LOL游戏HTML网页设计模板 简单学生网页设计 静态HTML CSS网站制作成品
- java去掉首尾字符_去掉字符串首尾指定的字符或空格
热门文章
- 拓端tecdat|R语言使用Rasch模型分析学生答题能力
- python实现池化操作
- Android-广播
- 操作系统 读者-写者问题
- matlab里substring,ADT课堂第六讲-String Functions-substring
- leetcode——给你两个非空链接表,代表两个非负整数。 数字以相反的顺序存储,并且它们的每个节点包含单个数字。 将两个数字相加,并将其作为链表返回。
- Pandas常用函数diff和shift函数学习使用
- python之word2vec实战学习
- python列表用来有序存放一组_Python期末习题练习
- default value mysql_Mysql Field * doesn't have a default value解决方法