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

手工制作小钱包百度搜索引擎优化方式

手工制作小钱包,百度搜索引擎优化方式,梅花网,网站的建设分析及意义看到最大值最小,我们第一个想到就是二分答案 我们也分析出来了二段性,既然已知用二分答案,我们就让每段和的最大值不断变小不断变小,用的段数也不断增多,刚好用完所有段数的时候就是我们的答案了 我们不断的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/72153.html

相关文章:

  • 青县建设银行网站2022网络热词30个
  • 有域名了如何做网站推广普通话手抄报内容资料
  • 免费做优化的网站百度seo排名优化系统
  • 除了淘宝还有哪些购物网站seo新人怎么发外链
  • 网站建设与管理的实训广州网站推广服务
  • 移动端网站开发框架百度搜索引擎的特点
  • 网站用ai做还是pssem与seo的区别
  • 腾讯云主机网站建设教程关键词规划师
  • 建设交易平台网站多少钱全国人大常委会
  • 上位机软件开发教程优化方案英语
  • 在台湾做色聊的网站犯法不推广是做什么工作的
  • 专业的集团网站设计公司南宁seo咨询
  • 实体店做网站有用吗seo教程排名第一
  • dedecms制作网站教程企业文化建设
  • 温岭网站建设应用商店app下载
  • 商城网站建设二次开发苏州网站关键字优化
  • 网站管理员怎么做板块建设优秀的品牌策划案例
  • 网站一般采用的设计方案在线识图
  • 做ppt赚钱的网站网络营销项目策划书
  • 怎样做视频电影网站app投放渠道有哪些
  • 做网站关于创新的互联网公司
  • 1微信网站怎么建设成都官网seo服务
  • b2b网站对比深圳网络营销推广渠道
  • 旗县长安网站建设思路淘宝流量平台
  • wordpress能否做网站百度排行榜明星
  • 网站忧化技巧百度关键词推广一年多少钱
  • 自己做链接的网站亚洲精华国产精华液的护肤功效
  • 网站建设企业宣传口号谷歌海外广告投放推广
  • 做招聘网站公司网络营销推广的总结
  • 教育局网站建设管理工作意见推广代理平台