欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

洛谷:P1182 数列分段 Section II(二分,)

程序员文章站 2022-07-16 10:59:14
...

题目:

洛谷:P1182 数列分段 Section II(二分,)

再做最后一道二分吧,希望别处什么岔子了。

代码:ok,就两个模板试试呗。

#include<bits/stdc++.h>
using namespace std;
int m,n;
int A[100005];
int main()
{
 cin>>m>>n;
 int minn=-1;
 for(int i=0;i<m;i++)
 {
  cin>>A[i];
  minn=max(minn,A[i]);
 }
 int a=minn;
 int b=1000000005;
 while(a<=b)
 {
  int c=(a+b)/2;
  int all=0;
  int sum=0;
  for(int i=0;i<m;i++)
  {
   if(sum+A[i]>c)
   {
    sum=A[i];
    all++;
   }
   else sum+=A[i];
  }
  all++;
  //cout<<c<<"-"<<all<<endl;
  if(all<=n)
  {
   b=c-1;
  }
  else a=c+1;
 }
 cout<<a;
 } 
相关标签: 二分