Codeforces Round #511 Div2 D. Little C Loves 3 II

Posted hfccccccccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #511 Div2 D. Little C Loves 3 II相关的知识,希望对你有一定的参考价值。

http://codeforces.com/contest/1047/problem/D

问题

有一个 (N imes M) 的棋盘,每次可以选择两个曼哈顿距离为 (3) 的未被占领的点,并在这两个点上放置棋子。问最多能放多少个旗子。

题解

建图跑了一下最大流会发现基本都可以跑满,只有部分小数据跑不满,特判一下就好了。。。

#include <bits/stdc++.h>

#ifdef LOCAL
    #define debug(...) fprintf(stderr, __VA_ARGS__)
#else
    #define debug(...) 0
#endif

using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int, int> pii;

int main() {
    ll n, m;
    while (cin >> n >> m) {
        if (n > m) swap(n, m);

        ll ans = 0;
        if (n == 1) {
            ll r = m % 6;
            ans = ((m - r) / 6) * 3;
            if (r == 4) ans += 1;
            if (r == 5) ans += 2;
            ans *= 2;
        } else if (n == 2 && (m == 2 || m == 3 || m == 7)) {
            if (m == 2) ans = 0;
            if (m == 3) ans = 4;
            if (m == 7) ans = 12;
        } else {
            ans = n * m - (n * m % 2);
        }

        cout << ans << endl;
    }

    return 0;
}

总结

遇到不是很好想的数学题可以先打个表。

以上是关于Codeforces Round #511 Div2 D. Little C Loves 3 II的主要内容,如果未能解决你的问题,请参考以下文章

C. Enlarge GCD Codeforces Round #511 (Div. 2)数学

B. Cover Points Codeforces Round #511 (Div. 2)数学

Codeforces Round #511 (Div. 1)

Codeforces Round #511 Div2 C. Enlarge GCD

Codeforces Round #511 (Div. 2) C. Enlarge GCD

Codeforces Round #511 (Div. 2)-C - Enlarge GCD (素数筛)