2025-04-01から1ヶ月間の記事一覧

AtCoder Beginner Contest 403 D

https://atcoder.jp/contests/abc403/tasks/abc403_dDで割った余りで分類してソートします。同じ値ならカウントします。入力例1だと余り1の方は、 (1, 2), (3, 1), (5, 1)DPで削除する個数を最小にするようにします。 D=0の場合は重複を削除するだけです。 /…

AtCoder Beginner Contest 402 F

https://atcoder.jp/contests/abc402/tasks/abc402_f左上と右下を分けて考えます。入力例2で考えると、左上から7 5 3の対角線上までの経路を考えると、[137], [135, 125], [123]です。あとで100掛けるので、[13700], [13500, 12500], [12300]となります。対…

AtCoder Beginner Contest 402 E

https://atcoder.jp/contests/abc402/tasks/abc402_d残りの持ち金とどれをすでにクリアしたかでメモ化すればよいです。 // Payment Required #![allow(non_snake_case)] //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T { let mut line =</t:>…

AtCoder Beginner Contest 402 D

https://atcoder.jp/contests/abc402/tasks/abc402_d2点の番号を足してNで割った余りが同じなら平行です。 // Square Price #![allow(non_snake_case)] //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T { let mut line = String::new(); </t:>…

AtCoder Beginner Contest 400 D

https://atcoder.jp/contests/abc400/tasks/abc400_dグラフとか考えずに、ふつうにDijkstraっぽくやればいいですね。ただし、距離は0か1進むので、BinaryHeapではなく、VecDequeを用意して、距離0なら前に、距離1なら後ろにpushすればよいです。 // Replace …

AtCoder Beginner Contest 400 E

https://atcoder.jp/contests/abc400/tasks/abc400_eという形の数を全て求めてソートしておきます。そうすれば二分探索が使えます。なので素数は500,000以下でよいです。 // Ringo's Favorite Numbers 3 #![allow(non_snake_case)] //////////////////// lib…