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