Official
D - く / L Editorial by nuip
解法1
石をくの字に並べる方法それぞれについて、座標ごとの和 \((ax+bx+cx, ay+by+cy)\) を考えます。石の並び方が異なるとき、この値も異なることが次のように示せます。
くの字に並んでいる石のうち真ん中の石の座標を \((x,y)\) とすると、他の石の座標は \(dx,dy\in \{1,-1\}\) を使って、\((x+dx,y), (x,y+dy)\) と表すことができます。このとき、座標ごとの和は\((3x+dx.3y+dy)\) となります。よって、座標の和が \((X,Y)\) であるとき、真ん中の石の \(x\) 座標は \(X/3\) を四捨五入することで計算できることが分かります。\(y\) 座標も同様です。さらに \(dx,dy\) も計算できるため、座標ごとの和からそれぞれの石の座標がわかります。これで証明できました。
よって、座標ごとの和 \((1,1)\) を \((ax+bx+cx, ay+by+cy)\) にする問題を解けば良いです。 幅優先探索によって、小さい範囲に対する最短経路を求めてみると、このようになっています。
7, , 6, 6, , 6, 6, , 6, 6, , 6, 6, , 6, 6, , 6, 6, , 7,
, , , , , , , , , , , , , , , , , , , , ,
7, , 6, 5, , 5, 5, , 5, 5, , 5, 5, , 5, 5, , 5, 6, , 6,
7, , 6, 5, , 4, 4, , 4, 4, , 4, 4, , 4, 4, , 5, 5, , 6,
, , , , , , , , , , , , , , , , , , , , ,
7, , 6, 5, , 4, 3, , 3, 3, , 3, 3, , 3, 4, , 4, 5, , 6,
7, , 6, 5, , 4, 3, , 2, 2, , 2, 2, , 3, 3, , 4, 5, , 6,
, , , , , , , , , , , , , , , , , , , , ,
7, , 6, 5, , 4, 3, , 2, 1, , 1, 1, , 2, 3, , 4, 5, , 6,
7, , 6, 5, , 4, 3, , 2, 1, , 0, 1, , 2, 3, , 4, 5, , 6,
, , , , , , , , , , , , , , , , , , , , ,
7, , 6, 5, , 4, 3, , 2, 2, , 1, 1, , 2, 3, , 4, 5, , 6,
7, , 6, 5, , 4, 3, , 3, 2, , 2, 2, , 2, 3, , 4, 5, , 6,
, , , , , , , , , , , , , , , , , , , , ,
7, , 6, 5, , 4, 4, , 3, 3, , 3, 3, , 3, 3, , 4, 5, , 6,
7, , 6, 5, , 5, 4, , 4, 4, , 4, 4, , 4, 4, , 4, 5, , 6,
, , , , , , , , , , , , , , , , , , , , ,
7, , 6, 6, , 5, 5, , 5, 5, , 5, 5, , 5, 5, , 5, 5, , 6,
7, , 7, 6, , 6, 6, , 6, 6, , 6, 6, , 6, 6, , 6, 6, , 6,
, , , , , , , , , , , , , , , , , , , , ,
8, , 7, 7, , 7, 7, , 7, 7, , 7, 7, , 7, 7, , 7, 7, , 7,
この表を観察すると、表の値が次のように求められることが分かります。
long long solve(long long x,long long y) {
x = (x>0 ? x-x/3 : x+(2-x)/3) - 1;
y = (y>0 ? y-y/3 : y+(2-y)/3) - 1;
if(x==0 && y==0) return 0;
if(x==1 && y==1) return 1;
return max({x,-x,y,-y}) + (x==y);
}
これが正しいことは、それぞれの石の動かし方について、座標ごとの和がどう変化するかを考えて、答えの大きさについて帰納法をすることで証明できます。
posted:
last update: