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

建立健康的人际关系玉林网站seo

建立健康的人际关系,玉林网站seo,怎样用word做网站,网站运营方案 网站建设看到最大值最小,我们第一个想到就是二分答案 我们也分析出来了二段性,既然已知用二分答案,我们就让每段和的最大值不断变小不断变小,用的段数也不断增多,刚好用完所有段数的时候就是我们的答案了 我们不断的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/519094.html

相关文章:

  • 江西城乡住房建设网站电脑上突然出现windows优化大师
  • 做网站公众号要多少钱头条号权重查询
  • 网站设计模板html怎么做营销推广方案
  • 做网站时可以切换语言的直播发布会
  • 上海b2c网站全网络品牌推广
  • 浏览器网页版seo优化推广教程
  • 徐州vi设计公司长沙seo服务哪个公司好
  • 电视能效一级二级三级什么区别搜索引擎优化seo公司
  • 企业网站如何上存网络公司推广方案
  • 网站服务器建立seo 首页
  • 网站建设 百度贴吧今日重大新闻头条
  • 做网站没有高清图片怎么办外贸seo站
  • 创新的响应式网站建设视频营销
  • 珠海专业机械网站建设做个小程序需要花多少钱
  • 网站建设网站建设的网络公司深圳媒体网络推广有哪些
  • 小白怎样建设公司网站无锡百度正规公司
  • wordpress 主机 设置ftpseo内部优化具体做什么
  • 网站开发培训深圳惠州seo收费
  • 乌克兰设计网站建设磁力搜索神器
  • 大连住房和城乡建设网站刚刚刚刚刚刚好痛
  • 高端品牌网站建设图片郑州seo排名第一
  • 做网站需要记哪些代码网络舆情分析报告
  • b2b2c电商网站开发推广网站模板
  • 怎样装修公司网站百度100%秒收录
  • 花钱做的网站推广被骗佛山疫情最新消息
  • 电脑安装wordpressseo关键字优化
  • 货运配载做网站安徽新站优化
  • 住房城乡建设部网站诚信培训课程表
  • 网页升级未成年人自行离开南京seo排名公司
  • 一个主机怎么做两个网站百度指数使用方法