二分上机训练题解

Posted fashpoint

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分上机训练题解相关的知识,希望对你有一定的参考价值。

二分上机训练

有2道题,可我还没学到最小生成数

所以我只写出来了一道,第一题,

第一题: 数列分段(二)

没啥好说的

二分板子题

code:

#include<bits/stdc++.h>
using namespace std;
int m,n,L,R,mid,a[100050];
bool check(int d) 
    int kk=1, sum = 0;
    for (int i = 1; i <= n; i++) 
        if (a[i] > d)
            return false;
        if (sum + a[i] > d)
            kk++, sum = a[i];
        else
            sum+=a[i];
    
//  cout<<" kk: "<<kk<<" ";
    return kk<=m;

int main() 
    scanf("%d%d",&n,&m);
    for(int i=1; i<=n; i++) 
        scanf("%d",&a[i]);
        R+=a[i];
    
    while(L<=R) 
        mid=(L+R)/2;
        if(check(mid)) R=mid-1;
        else L=mid+1;
//      cout<<"mid:"<<mid<<" L "<<L<<" R "<<R<<"\n";
    
    printf("%d",L);
    return 0;

第二题: 扩散

留地...

以上是关于二分上机训练题解的主要内容,如果未能解决你的问题,请参考以下文章

2021年度训练联盟热身训练赛第七场 K题预处理加二分

ECNA 2013 部分题解 | 训练记录

2021牛客暑期多校训练营7 部分题题解

训练指南 UVA - 11090(最短路BellmanFord+ 二分判负环)

比赛题解 更新ING

2018年全国多校算法寒假训练营练习比赛(第四场)题解