运用黑白染色,求出的最少颜色的棋子就是答案。因为当把棋盘用黑和白染色后,每放一个格子必然会占掉黑格和白格各一个,看能最多占掉多少个相邻的黑白格。
Code:
#include<iostream>
using namespace std;
typedef long long ll;
int main()
{
int t;cin >> t;
ll f = 1, h = 0, b = 0;
while (t--)
{
int n;cin >> n;
if (t%2==1)
{
h += (n + 1) / 2;
b += n / 2;
}
else
{
h += n / 2;
b += (n + 1) / 2;
}
}
cout << min(h, b);
}
本文介绍了一种通过黑白染色解决棋盘问题的方法。利用这种方法可以计算放置棋子后的最少颜色数量。通过将棋盘分为黑白两部分,每放置一枚棋子都会占据一个黑色格子和一个白色格子,文章提供了具体的实现代码。
249

被折叠的 条评论
为什么被折叠?



