Problem: Let $n$ be a positive integer.
Dominoes are placed on a $2n \times 2n$ board
in such a way that every cell of the board is
(orthogonally) adjacent to exactly one cell covered by a domino.
For each $n$, determine the largest number of dominoes
that can be placed in this way.

Solution: The answer is $\binom{n+1}{2}$ and a construction is shown below.

For each domino, its \emph{aura} consists of all the cells
which are adjacent to a cell of the domino.
There are up to eight squares in each aura,
but some auras could be cut off by the boundary of the board,
which means that there could be as few as five squares.
So we want to estimate how many auras get cut off.

We denote by $a$, $b$, $c$, $k$ the number of auras
with $5$, $6$, $7$, $8$ cells on the boundary,
so we want an upper bound on $a+b+c+k$.
Note also that $\boxed{a \le 4}$
since such a cell uses a corner of the grid.

\begin{center}
\begin{asy}
size(11cm);

path aura = (1,0)--(2,0)--(2,1)--(3,1)--(3,3)--(2,3)--(2,4)--(1,4)--(1,3)--(0,3)--(0,1)--(1,1)--cycle;
picture aura_up(pen fill) {
  picture pic = new picture;
  fill(pic, aura, fill);
  draw(pic, (1,1)--(2,1), lightgray );
  draw(pic, (1,3)--(2,3), lightgray );
  draw(pic, (0,2)--(3,2), lightgray );
  draw(pic, (1,1)--(1,3), lightgray );
  draw(pic, (2,1)--(2,3), lightgray );
  draw(pic, aura, blue+1.25);
  return pic;
}

picture aura_right(pen fill) {
  return shift(0,3) * rotate(-90) * aura_up(fill);
}

add(shift(-1,-1)*aura_up(palegreen));
add(shift(-1,3)*aura_up(palegreen));
add(shift(-1,7)*aura_up(palegreen));
add(shift(1,1)*aura_up(palegreen));
add(shift(1,5)*aura_up(palegreen));
add(shift(3,3)*aura_up(palegreen));
add(shift(6,3)*aura_up(palegreen));
add(shift(8,1)*aura_up(palegreen));
add(shift(8,5)*aura_up(palegreen));
add(shift(10,-1)*aura_up(palegreen));
add(shift(10,3)*aura_up(palegreen));
add(shift(10,7)*aura_up(palegreen));

add(shift(4,6)*aura_right(palered));
add(shift(2,8)*aura_right(palered));
add(shift(6,8)*aura_right(palered));
/*
add(shift(0,10)*aura_right(palered));
add(shift(4,10)*aura_right(palered));
add(shift(8,10)*aura_right(palered));
*/
add(shift(4,1)*aura_right(palered));
add(shift(2,-1)*aura_right(palered));
add(shift(6,-1)*aura_right(palered));
add(shift(0,-3)*aura_right(palered));
add(shift(4,-3)*aura_right(palered));
add(shift(8,-3)*aura_right(palered));

draw(shift(0,-2)*scale(12)*unitsquare, black+2);

path cell = shift(16,-2)*unitsquare;
for (int i = 0; i <= 11; ++i) {
for (int j = 0; j <= 11; ++j) {
  if (max(abs(i-5.5), abs(j-5.5)) == 5.5)
    filldraw(shift(i,j)*cell, paleblue, gray);
  /*
  else if (max(abs(i-5.5), abs(j-5.5)) == 3.5)
    filldraw(shift(i,j)*cell, paleblue, gray);
  else if (max(abs(i-5.5), abs(j-5.5)) == 1.5)
    filldraw(shift(i,j)*cell, paleblue, gray);
  */
  else draw(shift(i,j)*cell, gray);
}
}
\end{asy}
\end{center}

The big observation about the auras on the edge:
\begin{claim*}
  The auras of type $a$, $b$, $c$ have
  $4$, $4$, and $3$-$4$ cells on the boundary of the grid, respectively.
  (The boundary is the $4(2n-1)$ cells touching an edge of the board.)
\end{claim*}
Consequently, we have a bound
$4a + 4b + 3c \le 4(2n-1)$.
On the other hand, we obviously have
$5a + 6b + 7c + 8k = 4n^2$.
Therefore,
\begin{align*}
  4n^2 + 2(2n-1) &\ge (5a+6b+7c+8k) + (2a+2b+1.5c) \\
  &= 8(a+b+c+k) + 0.5c - a \\
  &\ge 8(a+b+c+k) + 0 - 4 \\
  \implies \frac{n(n+1)}{2} + \frac 14 &\ge a+b+c+k
\end{align*}
which implies the desired bound after taking the floor of left-hand side.

\begin{remark*}
  In fact IMO 1999/3 shows the reverse bound:
  we now give a proof that every tiling in this problem
  has \emph{exactly} $\half n (n+1)$ dominoes.
  Color the board as shown below into ``rings''.
  \begin{center}
  \begin{asy}
  size(5cm);
  path cell = unitsquare;
  for (int i = 0; i <= 11; ++i) {
  for (int j = 0; j <= 11; ++j) {
    if (max(abs(i-5.5), abs(j-5.5)) == 5.5)
      filldraw(shift(i,j)*cell, paleblue, gray);
    else if (max(abs(i-5.5), abs(j-5.5)) == 3.5)
      filldraw(shift(i,j)*cell, paleblue, gray);
    else if (max(abs(i-5.5), abs(j-5.5)) == 1.5)
      filldraw(shift(i,j)*cell, paleblue, gray);
    else draw(shift(i,j)*cell, gray);
  }
  }
  \end{asy}
  \end{center}
  Every aura covers exactly four blue cells. Done.
\end{remark*}