# D - Maximum Sum of Minimum (opens new window)
# 概要
- 頂点からなる木と頂点ごとにラベリングされている整数が与えられる
- 各頂点で以下のようにスコアを計算する
- 各辺に2つの端点に書き込まれた整数の最小値を書き込む
- 各辺の総和をスコアとする
- スコアの最大値を求め, その時の整数の書き込み方をもとめよ
# 思考
- 実験する
- 整数の最大値は絶対にスコアに含まれない
- 2頂点の最小値なので, 最大値はスコアに含まれない
- 最大値イコールの合計スコア - の最大値らしい
- 後は辺のつなぎ方を確かめる
- 根に最大値を置いて, 順番にラベリングしてあげれば良さそう
- 実装
- WA (opens new window)
30分終了
- 結果を見ると, sampleも落ちている
- もう一度ソースコードを見返してみる
cout << " "[i==0] << ans[i];
という表現を使っている- AOJはこれが使えなかった
- AtCoderも使えないのか......?
- if文に書き直す
- AC! (opens new window)
# 気づいたこと・感想
- AtCoderでもこの構文は使えない......
cout << " "[i==0] << ans[i];
という表現
- ちなみにこの構文はアルメリアさんの記事 (opens new window)で見かけたもの
- 構文の意味を知らないので明日本人に聞いてみる