当前位置: 首页 > wzjs >正文

干果坚果网站建设今天的新闻有哪些

干果坚果网站建设,今天的新闻有哪些,漳州微信网站建设电话,seo信息编辑招聘看到最大值最小,我们第一个想到就是二分答案 我们也分析出来了二段性,既然已知用二分答案,我们就让每段和的最大值不断变小不断变小,用的段数也不断增多,刚好用完所有段数的时候就是我们的答案了 我们不断的check看符…

看到最大值最小,我们第一个想到就是二分答案

我们也分析出来了二段性,既然已知用二分答案,我们就让每段和的最大值不断变小不断变小,用的段数也不断增多,刚好用完所有段数的时候就是我们的答案了

我们不断的check看符不符合要求,符合要求就不断接近答案,不符合要求就排除

check函数怎么写呢?

我们已经枚举出了最大值,我们只要让每段和最大不超过最大值,然后判断段数是大于m还是小于还是等于m就行了

现在唯一的问题就在于我们的check函数怎么写了,也就是我们怎么分段,我们根据枚举的答案,也就是每段和的大小,我们用小贪心的思想,不断的加,如果大于sum的时候,把前面的格子分成一段,再往后加,最后再把最后那段加上,就是我们的格子总数了

我们判断格子总数是小于m还是大于等于m,也就是我们把段数尽可能分的最少,总段数是有限的

来进行我们的二分操作,我们判断一下二分的两个端点,每段和的最大值最大就是sum(a[i),最小值就是max(a[i]) 

#include <iostream>
using namespace std;
typedef long long ll;
const int N = 1e5+10;
ll a[N];
ll n,m;
bool check(ll x)
{ll sum = 0;ll cnt = 0;for(int i =1;i<=n;i++){sum+=a[i];if(sum>x){cnt++;sum=a[i];}}return cnt+1<=m;
}
int main()
{cin >> n >> m;ll l = 0,r = 0;for(int i = 1;i<=n;i++){cin >> a[i];l = max(l,a[i]);	r+=a[i];}while(l<r){ll mid = (l+r)/2;if(check(mid)) r=mid;else l = mid+1;}cout << l << endl;return 0;} 

http://www.dtcms.com/wzjs/61859.html

相关文章:

  • 找个人做网站开不出发票怎么办百度seo推广方案
  • 品牌型网站制作价格四川旅游seo整站优化站优化
  • 赣州管理中心网站哈尔滨网络公司
  • 宁波做网站seo最新百度快速收录技术
  • 东莞专业建网站怎么制作百度网页
  • 用jsp做的网站源代码5151app是交友软件么
  • 相亲网站上做投资的女生品牌推广策划方案
  • 深圳考试培训网站建设seo商城
  • 做视频网站用哪个软件好优化模型
  • 济南建站公司电话百度排名点击器
  • 网站涉及敏感视频等该怎么做大连seo顾问
  • ps如何做网站轮播图郴州网络推广公司排名
  • 做招聘网站赚钱吗上海网站建设关键词排名
  • dw可以做移动端网站北海seo快速排名
  • 公司网站建设包含的内容怎么引流推广
  • 网站开发技术发展趋势小程序如何推广运营
  • 推动高质量发展的最终目的是什么郑州企业网站优化排名
  • 长沙网站优化厂家百度地址
  • 印度电商平台网站建设策划互联网医疗的营销策略
  • 贵州建设项目门户网站百度人工服务热线
  • 企业门户网站登录域名注册商有哪些
  • win10系统可以做网站搭建关键词指数查询
  • 建设银行手机官方网站下载网站在线推广
  • 怎么提高网站加载速度慢企业网站营销的实现方式
  • 幼儿园网站建设文章需要优化的网站有哪些?
  • 长春电商网站建设公司电话网络推广平台公司
  • 用政府网站做参考文献的格式推广官网
  • 专做外贸衣服鞋网站有哪些百度关键词投放
  • 得物网上商城网站建设优化
  • 网站界面设计论文微信引流推广怎么做