競技プログラミング日記

主に AtCoder の記事です

2023-03-07から1日間の記事一覧

AtCoder Beginner Contest 292F

ABC292F 置き方が連続的で,これは全探索できないので, 最適な置き方やその性質を考える. すると,ある最適な置き方であって, 三角形の頂点の一つを,長方形の頂点と重ねたものが存在すると分かる. 以下,場合分けをしてそれぞれのmaxが答え. \(f_{\the…

AtCoder Beginner Contest 266C

ABC266C \(AB, BC\) の表すベクトルを,それぞれ\((a,b), (c,d)\) とする. 角 \(ABC < \pi\) であることは, \(ad - bc > 0\) であることと同値. 使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925" ll check(pll x, pl…

AtCoder Beginner Contest 146F

ABC146F 最短を求める部分と,lex order 最小を求める部分を,分けて考える. 辞書順最小を求める. これは,全ての候補を求めてソートするのは間に合わないので, 自分で構成したほうが良い. 先頭から小さい順に決めるのが理想だが, それだとゴールできる…

AtCoder Beginner Contest 148F

ABC148F \(v \in V\) をとる. 高橋君が最初に居た座標から \(v\) への距離を \(dis_{0}(v)\) とおく. 同様に青木君版を \(dis_{1}(v)\) とおく. 高橋君が \(v\) に到達可能であることは, 青木君よりも先に到達可能であることと同値. すわなち, \(dis_{…

AtCoder Beginner Contest 161F

ABC161F \(N \leq 10^{12}\) なので, \(O(N^{1/2})\) は間に合う. よって,約数列挙は大丈夫. 操作の逆を考えて, \(1\) から \(N\) を作ることを考える. \(x\) に \(\times K, + K\) をするが, いつでも出来るとは限らない. \(+ K \) は \(x \not\equ…

AtCoder Beginner Contest 216F

ABC216F \(max(A_{S})\) と \(sum(B_{S})\) をとる. \(A\) をソートしておくと良さそう,ただしそれに合わせて \(B\) も一緒にソートする. \(i \in N\) を全探索して, \(A_{i}\) が最大になる \(S\) の取り方を調べる. \(sum(B_{S}) \leq A_{i}\) になる…