--- tags: yukicoder --- # yukicoder No.1122 Plane Tickets https://yukicoder.me/problems/no/1122 ## コンテスト中の考察 線形計画問題を知っていますか?線形計画問題に見えたのでとりあえず線形計画っぽく書いてみます. - 種類 A, B, C の優待券を $T_1$ 枚ずつ使う. - 種類 B, C, D の優待券を $T_2$ 枚ずつ使う. - 種類 C, D, E の優待券を $T_3$ 枚ずつ使う. - 種類 D, E, A の優待券を $T_4$ 枚ずつ使う. - 種類 E, A, B の優待券を $T_5$ 枚ずつ使う. とすると, \begin{align} \text{maximize}&&&T_1+T_2+T_3+T_4+T_5\\ \\ \text{subject to}&&&T_4+T_5+T_1≤a\tag{1}\\ &&&T_5+T_1+T_2≤b\tag{2}\\ &&&T_1+T_2+T_3≤c\tag{3}\\ &&&T_2+T_3+T_4≤d\tag{4}\\ &&&T_3+T_4+T_5≤e\tag{5}\\ &&&T_i≥\tag{6}0\\ \end{align} 答えに単調性があって, 制約が $10^{15}$ なので決め打ち二分探索をする. つまり, $T_1+T_2+T_3+T_4+T_5=x$ のとき, $(1),(2),(3),(4),(5),(6)$ を同時に達成できるかどうかを判定する関数をつくる. 変数 3 つの和は大変なので, どうにかして 1 つにしたい. ここで $(1)+(3)$ をすると, \begin{align} T_1+T_2+T_3+T_4+T_5+T_1&≤a+c\\ x+T_1&≤a+c\\ T_1&≤a+c-x\\ \end{align} 同様に, \begin{align} T_1≤a+c-x\\ T_2≤b+d-x\\ T_3≤c+e-x\\ T_4≤d+a-x\\ T_5≤e+b-x\\ \end{align} $T_i$ は, $T_1+T_2+T_3+T_4+T_5>x$ にならない限りできるだけ大きくした方が良く, 多すぎた分は減らせるので, \begin{align} T_1=a+c-x\\ T_2=b+d-x\\ T_3=c+e-x\\ T_4=d+a-x\\ T_5=e+b-x\\ \end{align} と仮定(ただし多すぎた分は減らす). $(6)$ を思い出すと条件は, \begin{cases} 0≤T_1\\ 0≤T_2\\ 0≤T_3\\ 0≤T_4\\ 0≤T_5\\ x≤T_1+T_2+T_3+T_4+T_5\\ \end{cases} となる. 条件が整理できたっぽいのでこの6つを条件として判定する → AC https://yukicoder.me/submissions/516402 ## もはや二分探索いらない \begin{align} 0&≤T_1\\ 0&≤a+c-x\\ x&≤a+c\\\\ x&≤T_1+T_2+T_3+T_4+T_5\\ x&≤(a+c-x)+(b+d-x)+(c+e-x)+(d+a-x)+(e+b-x)\\ 6x&≤2(a+b+c+d+e)\\ x&≤\frac{1}{3}(a+b+c+d+e)\\ \end{align} のように整理をして, 条件は \begin{cases} x≤a+c\\ x≤b+d\\ x≤c+e\\ x≤d+a\\ x≤e+b\\ x≤\dfrac{1}{3}(a+b+c+d+e)\\ \end{cases} つまり, 答えは $\min\left(a+c,b+d,c+e,d+a,e+b,\dfrac{a+b+c+d+e}{3}\right)$ https://yukicoder.me/submissions/516882 ## さて, この考察怪しい. > ここで $(1)+(3)$ をすると, とか言っているが, $(1)+(3)\Rightarrow(1)\land(3)$ はいえない. 線形計画の領域の角のうち $\rm O(1)$ で計算できるものを取り出しただけに見える. しかし, ストレステストをしても落とせない. どうやら, 条件の式の係数が全部 1 であるため, かなり領域の形がシンプルになって, 角がこれだけになると思われる. <blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="ja" dir="ltr">ゆきこD、{a+c, b+d, c+e, d+a, e+b} を考えると各操作は「5つの変数すべてから1を引く、その後要素を1つ選んでさらに1を引く」なんですね、すごい</p>&mdash; てんぷら (@tempura_cpp) <a href="https://twitter.com/tempura_cpp/status/1286000646282342402?ref_src=twsrc%5Etfw">July 22, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>