Codeforces Round #609 (Div. 2) D. Domino for Young

开始想了一个自己误以为很对的思路,结果一直wa;
结束之后知道了一个神奇的东西,棋盘染色,棋盘染色可以做大部分多米诺这种1x2方格的问题。就是把这个看成一个国际象棋棋盘,用黑白染色,黑色只与白色相连,白色只与黑色相连,那么能够放上一个多米诺骨牌也就需要一个黑色和一个白色,这样就统计一下黑白棋盘格子各自有多少个就可以了,小的哪个就是答案,下面代码,码风略丑


#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
 
using namespace std;
typedef long long ll;
 
int main()
{
   int n;
   scanf("%d", &n);
   ll x = 0, y = 0;
   for(int i = 0; i < n; i++)
   {
       ll b;
       scanf("%lld", &b);
       if(i & 1)
        x += b % 2;
       else
        y += b % 2;
       x += b / 2;
       y += b / 2;
   }
   printf("%lld\n", min(x, y));
   return 0;
}
发布了40 篇原创文章 · 获赞 13 · 访问量 842

猜你喜欢

转载自blog.csdn.net/weixin_43891021/article/details/103705979