Domino for Young题解
Wings_of_liberty · · 题解
分析
这道题是一道小学奥数类的题,首先,对于一个有 n 个格子的图,我们理论上来说能填上
方法
我们将任意一个格子填上黑色,并将相邻的格子填上白色,以此类推,得到一个黑白相间的格子图,并且同色不相邻,由于放置一个骨牌需要两个相邻的格子,其实就是一个黑色格子加上一个相邻的白色格子,所以说,最后找到较少的格子的数量就可以。
注意
虽然说方法上是要把每一个格子涂上颜色,但是数据范围是
代码实现
#include <bits/stdc++.h>
using namespace std;
int n;
int m;
long long bla=0,whi=0;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&m);
long long w,b;
if(m&1){
w=m>>1,b=(m>>1)+1;
}else{
w=b=(m>>1);
}
if(i&1){//奇数行偶数行要交换一下最底下一格的颜色
whi+=w,bla+=b;
}else{
whi+=b,bla+=w;
}
}
printf("%lld",min(whi,bla));
return 0;
}