2025-08-01から1ヶ月間の記事一覧
https://atcoder.jp/contests/abc421/tasks/abc421_dRLEが2人で違いますが、分割して同期を取ると簡単になります。 Generic版のPointを今までより強化しました。 // RLE Moving #![allow(non_snake_case)] //////////////////// library ///////////////////…
https://atcoder.jp/contests/abc420/tasks/abc420_dマスごとにドアが元通りと反対になっているときの最小の操作数を記録すればよいです。 // Substr Swap #![allow(non_snake_case)] use std::collections::VecDeque; //////////////////// library ///////…
https://atcoder.jp/contests/abc413/tasks/abc413_g典型的な分割統治法を使う問題です。障害物がなるべく半数ずつになるように領域を縦か横かで分割して境界を計算して、境界を統合します。各領域の4つの境界は(範囲, グループ番号)のベクトルで表して、統…
https://atcoder.jp/contests/abc419/tasks/abc419_e入力例1なら、長さLの幅にして、 4 2 1 3各列の要素がMの剰余で同じにして、一番上の行を足したらMの剰余で0になるようにします。 DPを使うことを考えて左から右に更新していきます。状態を一番上の行のそ…
https://atcoder.jp/contests/abc419/tasks/abc419_d木を作って指定した範囲に1を足して、最後に偶数ならS側の文字です。 // Substr Swap #![allow(non_snake_case)] //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T { let mut line = St</t:>…
https://atcoder.jp/contests/abc418/tasks/abc418_e2点の組み合わせを線分として、全ての線分を方向で分類します。そうすると、同じ類の中の線分の2つの組み合わせが台形になります。ただし、同じ直線内の線分は除きます。 平行四辺形だと二重にカウントし…
https://atcoder.jp/contests/abc418/tasks/abc418_d00なら1に10なら0になどとなるので、1の個数の偶奇が文字列の長さが1短くなるごとに変わります。すなわち、文字列の長さが偶数なら1の数が偶数なら美しい数、奇数ならそうでない、などとなります。ここが…
https://atcoder.jp/contests/abc417/tasks/abc417_f指定した範囲を平均するので、木を作ればよいです。 // Random Gathering #![allow(non_snake_case)] use std::cmp::{min, max}; //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T { le</t:>…