AtCoder Beginner Contest 286 E問題 Souvenir
問題
提出解答
問題の概要
個の都市がある. の 文字目が ならば, 都市 から都市 への直行便が存在し, ならば存在しない.
また, 都市 では価値が であるお土産がある.
以下の 個の問について答えよ.
問
都市 から都市 へいくつかの直行便を利用することによって, 移動することは可能か?
また, 可能ならば, 以下を満たすような移動の方法における「利用する直行便の数」と「購入したお土産の価値の総和」を答えよ.
- 都市 から都市 への移動の方法のうち, 利用する直行便の数が最小である.
- 上を満たすような移動の方法のうち, 都市 と都市 を含める経由する都市全てでお土産を 個ずつ購入した場合における購入したお土産の価値の総和
制約
- は からなる長さ の文字列
解法
を非負整数全体の集合とする. 代数系 を次のようにして定義する.
- に対して,
また, における順序を次のように設定する.
このとき, は を単位元として持つ. また, は以下を満たす全順序である.
- に対して, ならば, である.
よって, この問題は次のような問題に帰着される.
次のようにして定義される重み付き有向グラフ がある.
この問題における重みを最小にするパスが の定義から要求を満たす有向パスであることがわかる.
この重み付きグラフにおいて, Warshall-Floyd 法を利用することにより, 任意の 頂点間において, その2頂点間の有向パスが存在するか? 存在するならばその重みの最小値を求めることができる.
これにより, 前計算 時間, 問当たり 時間で求めることができ, 合計でO(N^3+Q)] 時間で解くことができる.
なお, 問題に答える際, の重みの設定から, 開始点におけるお土産の価値を加算していないので, 答える際にその分を加算することを忘れないこと.