2021-06-01から1ヶ月間の記事一覧

ARC042B - アリの高橋くん

B - アリの高橋くん 考えたこともっと簡単な方法があるんだろうな,とは思いつつも,計算で解が出せるので解いてしまった.現在地$(x_{0}, y_{0})$を中心とする円で各辺に接するものの半径を求め,それらのうちの最小値が答えになる.隣り合う頂点の座標を$(…

ABC206E - Divide Both

E - Divide Bothもう少し簡単な類題で慣れないと解けないなぁ,という感想. とりあえず約数で考えて,余分なものを差し引いて最大公約数の寄与だけ取り出す方法は汎用性がありそう.考えたこと与えられている条件は $x,y$が互いに素ではなく 一方が他方の倍…

ABC206D - KAIBUNsyo

D - KAIBUNsyo考えたこと $A$を両端から,ペアとなる文字を中心に向かって順に見ていく. もし「異なる」場合は,その時点で置き換える. でできる.ここで問題になるのは,ある2つの数字を等しいとみなす処理を繰り返すため,「数字が異なる」という状態が…

ABC206C - Swappable

C - Swappable考えたこと典型例としてまとめていた次がほとんどそのまま使える. AtCoder - 解法の整理 - 競プロはじめました上では$A_{i}=A_{j}$の個数を数えているのに対し,今回は$A_{i}\neq A_{j}$の個数を求める点が違う.よって,総数($N (N - 1)/2$…

ABC206B - Savings

B - Savings考えたこと\begin{aligned} \sum_{i=1}^{k} = \frac{k(k+1)}{2} \end{aligned}だから,\begin{aligned} \frac{k(k+1)}{2} \geq N \end{aligned}を満たす最小の正整数$k$を求めれば良い.2次方程式\begin{aligned} & \frac{k(k+1)}{2} = N \\ &\L…

ABC206A - Maxi-Buying

A - Maxi-Buying$\lfloor 1.08\times N\rfloor$は int(1.08 * N) 108 * N // 100 math.floor(1.08 * N) などで計算できる.

ABC045C - たくさんの数式

C - Many Formulas考え方文字列$S$の長さを$N$とすると,$N-1$箇所に$+$を入れる方法を全通り試せばよい.これはbit全探索で実現できる.最終的に求めたいのは総和なので, $+$の直後の文字列から次に$+$が出るまでの文字列を記憶し, $+$が出たら,それまで…

ABC178E - Dist Max

E - Dist Max考え方$i,j$を含んだ式で2重ループだとTLEする問題.典型的なパターンとして,①$|x_{i} - x_{j}| + |y_{i} - y_{j}| = X$となる$X$を振る,②$i,j$を式変形で分離してループを1つにする,が考えられる.①は$1\leq x_{i}, y_{i}\leq 10^{9}$だから…

ARC068D - Card Eater

D - Card Eater考えたこと同じカードが3枚以上あれば,そのカードを3枚選ぶことで,2枚ずつ減らせる.この操作を繰り返せば,同じカードは2枚以下にできる.よって,すべてのカードは1枚 or 2枚であるとして良い(※ 1枚になるのは同じカードが奇数枚あったと…

ABC166E - This Message Will Self-Destruct in 5s

E - This Message Will Self-Destruct in 5s考え方最悪の場合,$N=2\times 10^{5}$. 全探索は$O(N^{2})$なのでできない. $A_{i} + A_{j}=X$で$X$を振るのは,$2\leq X \leq 2\times 10^{9}$だからできない. そこで,条件を書き下してみると\begin{aligned…