cf1268 B. Domino for Young
题意:
给一个类似直方图的格子图染色,每次可染一个未染过色的 1*2 或 2*1 区域。问最多染几次

思路:
听说是个典中典。先把整个图染成国际象棋黑白棋盘,然后黑格数与白格数中较小者就是答案
ll n, a = 0, b = 0; cin >> n;
for(int i = 1; i <= n; i++) {
int x; cin >> x;
if(i & 1) a += (x+1)/2, b += x/2;
else a += x/2, b += (x+1)/2;
}
cout << min(a, b);

浙公网安备 33010602011771号