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

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

 

思路:用黑白相间的棋盘来给他染色(  参照国际象棋棋盘 ), 一个棋子一定是落在一个白色和一个黑色棋点上的,所以统计黑色块和白色块的最小值

AC_Code

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int maxn = 100010;
 5 ll _min(ll a, ll b){        //不知道为什么我用min,报错了,以后还是自己敲比较函数吧
 6     if( a>b ) return b;
 7     else return a;
 8 }
 9 
10 int main()
11 {
12     ll b,w,n,x;
13     b=0;
14     w=0;
15     scanf("%lld",&n);
16     for(ll i=1;i<=n;i++){
17         scanf("%lld",&x);
18         if(i%2){        //奇数列,以黑色为底
19             b += x/2;
20             w += x/2;
21             if( x%2 ){
22                 b++;
23             }
24         }
25         else{           //偶数列,以白色为底
26             b += x/2;
27             w += x/2;
28             if( x%2 ){
29                 w++;
30             }
31         }
32     }
33     printf("%lld\n",_min(b,w));
34     return 0;
35 }

猜你喜欢

转载自www.cnblogs.com/wsy107316/p/12272463.html