USACO 1.3.1

1.3 First -- 挤牛奶Milking Cows

解题思路:

数据比较水, 暴力可做
算出时间复杂度发现会T
但是却A了
暴力比较慢,但是却可以保证输出的正确
(对拍可以用)

Accepted code:

/*
ID: halo_mi1
TASK: milk2
LANG: C++
*/

#include<cstdio>
#include<cstring>
#define fre(x) freopen(#x".in", "r", stdin), freopen(#x".out", "w", stdout);

using namespace std;

int n, x, y, Begin, End, ans_1, ans_2, len_1, len_2;
bool a[1000010];

int max(int x, int y) { return x > y ? x : y; }
int min(int x, int y) { return x < y ? x : y; }

int main() {
    scanf("%d", &n); memset(a, 0, sizeof(a));
    Begin = 1e9;
    for (int i = 1; i <= n; i++) {
        scanf("%d %d", &x, &y);
        Begin = min(Begin, x);
        End = max(End, y);
        for (int j = x; j < y; j++)
            a[j] = 1;
    }
    ans_1 = len_1 = ans_2 = len_2 = 0;
    for (int i = Begin; i < End; i++) {
        if (a[i]) len_1++, ans_1 = max(ans_1, len_1), len_2 = 0;
        else len_2++, ans_2 = max(ans_2, len_2), len_1 = 0;
    }
    printf("%d %d", ans_1, ans_2);
}

猜你喜欢

转载自blog.csdn.net/qq_39798042/article/details/82999799