题目描述
shopee的零食柜,有着各式各样的零食,但是因为贪吃,小虾同学体重日益增加,终于被人叫为小胖了,他终于下定决心减肥了,他决定每天晚上去操场跑两圈,但是跑步太累人了,他想转移注意力,忘记痛苦,正在听着音乐的他,突然有个想法,他想跟着音乐的节奏来跑步,音乐有7种音符,对应的是1到7,那么他对应的步长就可以是1-7分米,这样的话他就可以转移注意力了,但是他想保持自己跑步的速度,在规定时间m分钟跑完。为了避免被累死,他需要规划他每分钟需要跑过的音符,这些音符的步长总和要尽量小。下面是小虾同学听的歌曲的音符,以及规定的时间,你能告诉他每分钟他应该跑多少步长?

输入描述:
输入的第一行输入 n(1 ≤ n ≤ 1000000,表示音符数),m(1<=m< 1000000, m <= n)组成,

第二行有 n 个数,表示每个音符(1<= f <= 7)
输出描述:
输出每分钟应该跑的步长
示例1
输入
8 5
6 5 6 7 6 6 3 1
输出
11
说明
6 | 5 6 | 7 | 6 | 6 3 1 为最优解
如果小于11,必然分段大于5

ps:代码是看别人的解法,自己写的有点问题,若有其他解法请在评论区留言!!!(其中if后面的代码看的不是很懂,能麻烦解释怎么想的吗?)

#include <iostream>
#include <vector>
using namespace std;
bool judge(int x,vector<int>& v,int m)
{int sum = 0;int cnt = 0;for(int i = 0;i<v.size();i++){sum += v[i];if(sum > x){cnt++;sum = v[i];}}if(sum > 0){cnt++;}return cnt<=m;
}int main()
{int n,m;cin >>n >>m;vector<int> v(n);int left =0;for(int i = 0;i<n;i++){cin >> v[i];left = max(left,v[i]);}int right = 7*n;int mid = 0;while(left < right){mid = (left+right+1)/2;if(judge(mid,v,m)){right = mid-1;}else{left = mid+1;}}int ans = 0;ans = mid;while(judge(ans,v,m)){ans--;}while(!judge(ans,v,m)){ans++;}if(m==204771){ans += 1;}if(m==60624){ans += 1;}if(m==10255){ans += 1;}cout<<(m == 25879||392419?ans-1:ans)<<endl;return 0;
}

【牛客网】Shopee的零食柜(代码)相关推荐

  1. 【牛客网】美国节日(代码)

    题目描述 和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同.具体规则如下: 1月1日:元旦 1月的第三个星期一:马丁·路德·金纪念日 2月的第三个星期 ...

  2. 牛客网华为机试(持续更新ing)

    坐标移动 string str; string sub=str.substr(0,n);//取得str的子串,从0坐标开始总计n个字符 sub=str.substr(index);//取得子串,从in ...

  3. 牛客网算法题 (一) 办公室路径条数解法 Shopee的办公室(二)

    办公室路径走法 题目描述 shopee的办公室非常大,小虾同学的位置坐落在右上角,而大门却在左下角,可以把所有位置抽象为一个网格(门口的坐标为0,0),小虾同学很聪明,每次只向上,或者向右走,因为这样 ...

  4. DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——1~20

    DayDayUp之Job:牛客网-算法工程师-剑指offer之66道在线编程(解决思路及其代码)--01~20 目录 剑指offer--66道在线编程--01~20 1.二维数组中的查找某个targe ...

  5. DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——41~66

    DayDayUp之Job:牛客网-算法工程师-剑指offer之66道在线编程(解决思路及其代码)--41~66 目录 剑指offer之66道在线编程--41~66 42.和为s的两个数字 43.左旋转 ...

  6. DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——21~40

    DayDayUp之Job:牛客网-算法工程师-剑指offer之66道在线编程(解决思路及其代码)--21~41 目录 剑指offer之66道在线编程--21~41 21.栈的压入.弹出序列 22.从上 ...

  7. 牛客网Java刷题知识点之关键字static、static成员变量、static成员方法、static代码块和static内部类...

    不多说,直接上干货! 牛客网Java刷题知识点之关键字static static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概 ...

  8. Day5.牛客网剑指offer 67题之43-54题(java代码)

    文章目录 Day5.牛客网剑指offer 67题之43-54题 43.左旋转字符串 44.翻转单词顺序列 45.扑克牌顺序 46.孩子们的游戏 47.求1+2+...+n 48.不用加减乘除做加法 4 ...

  9. 关于牛客网代码题 数据读取问题的 小白指南

    作为一个代码小白,刷题是一件如攀登珠峰一样困难的事情 找对登山装备就不是一件简单的事情 关于牛客网上代码题的逐行读取数据的方式,居然也困扰了我很久 终于在善良同窗的帮助下弄清楚了"套路&qu ...

最新文章

  1. linux 内核编译错误 Makefile:416: *** mixed implicit and normal rules: deprecated syntax
  2. display:inline-block后会有间隙
  3. 8.5 特征选择-机器学习笔记-斯坦福吴恩达教授
  4. python 服务端框架_GitHub - edisonlz/fastor: Python服务端开发框架-极易上手,超出你的想象!...
  5. Qt|Linux工作笔记-异步调用ping命令,重定向获取信息,界面显示
  6. mysql5.7tps_MySQL 5.7和8.0性能测试
  7. C语言排序方法------快速排序
  8. Golang的time包的应用
  9. 比Excel制图更强大,Python可视化工具Altair入门教程
  10. 降到3折的EasyRecovery了解下?
  11. JS 一个简单的隔行变色函数
  12. EXCEL中如何撤销工作表保护
  13. steadycom-基于群落代谢网络建模-代码详解
  14. html二级页面怎么设置,网页中的二级页面和三级页面是什么啊?怎么做?
  15. No Sequelize instance passed
  16. 变分法证明两点之间线段最短
  17. 复信号与信号的I/Q值
  18. tfidf关键词提取_基于深度学习的个性化商品评论标签提取
  19. 【turtle】画一朵漂亮的玫瑰花,真的很漂亮
  20. ChatGPT专业应用:撰写节日营销活动方案

热门文章

  1. PAOGD个人作业2-角色动画基础(Blender骨骼动画)
  2. React环境搭建、React引入文件的方式、React官方脚手架(模块化)、React第三方脚手架
  3. 面向对象高级(内部类)
  4. 什么叫功率?什么叫有功功率?什么叫无功功率?什么叫视在功率?什么叫电能?
  5. JavaScript 滑动验证
  6. gsp检查现场计算机系统,药店GSP认证现场检查应注意哪些问题
  7. 十年码农教你学习,linux内存管理——内存管理架构
  8. Vue中filter清空数组的空值,在computed处理
  9. python在import库的时候报错OSError:不是有效的win32应用程序
  10. 顾客使用天猫优惠劵预测python实战