POJ3273-Monthly Expense

来源:互联网 发布:ios 将数组存入沙盒 编辑:程序博客网 时间:2024/06/10 12:10

二分搜索的思想比较容易了解,但是实现起来却经常有些细节方面的小错误导致wa

#include <cstdio>#include <algorithm>using namespace std;const int maxn = 100000+10;int fajo[maxn];bool judge(int x, int n, int m) {    int group = 1;    int sum = 0;    for (int i = 0; i < n; i++) {        sum += fajo[i];        if (sum > x) {            sum = fajo[i];            group++;        }    }    return group > m;}int main(int argc, char const *argv[]) {    int n, m;    scanf("%d%d", &n, &m);    int left = 0;    int right = 0;    for (int i = 0; i < n; i++) {        scanf("%d", &fajo[i]);        left = max(left, fajo[i]);        right += fajo[i];    }    while (right > left) {        int mid = (left + right) / 2;        if (judge(mid, n, m)) {            left = mid + 1;        } else {            right = mid;        }    }    printf("%d\n", right);    return 0;}


0 0
原创粉丝点击