2025-05-01から1ヶ月間の記事一覧
https://atcoder.jp/contests/abc407/tasks/abc407_d2進数をベクトルと考えて一次独立のものだけ選べばいいと思ったのですが、HWが20以下だからしらみつぶしで十分ですね。左上からそのマスを飛ばすか横のドミノを置くか縦のドミノを置くかの状態遷移すれば…
https://atcoder.jp/contests/abc406/tasks/abc406_e難しい問題ではないです。例の20は1足して21にすると考えやすいです。これを二進にすると10101です。 二進で10000は16ですが、[0, 16)の範囲はまとめて考えられます。1は2個なので、4C2=6通りあります。各…
https://atcoder.jp/contests/abc406/tasks/abc406_d同じxのyと同じyのxを集めるだけですが、時間的けっこう厳しいです。 // Garbage Removal #![allow(non_snake_case)] //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T { let mut line </t:>…
https://atcoder.jp/contests/abc405/tasks/abc405_fエッジの端点をxとyとすると、エッジを平面上の点と考えるます。そうすると、それと交差するエッジの端点(x1, y1)は、1 ≤ x1 < xかつx < y1 < y、または、x < x1 < yかつy < y1 ≤ N*2を満たせばよいです。…
https://atcoder.jp/contests/abc405/tasks/abc405_eまず、リンゴとブドウを並べます。そして、オレンジを配置します。オレンジは各リンゴの左とリンゴとブドウの間に配置できます。リンゴとブドウの間にオレンジをn個置くとします。そうすると、その他のオ…
https://atcoder.jp/contests/abc405/tasks/abc405_dEから幅優先探索するだけですね。 // Escape Route #![allow(non_snake_case)] //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T { let mut line = String::new(); std::io::stdin().re</t:>…
https://atcoder.jp/contests/abc404/tasks/abc404_e空でない茶碗は処理しないといけないので、空でない茶碗に移動します。問題は空の茶碗しかないときですが、そのときは空でない茶碗を右から探して、そこからDPで空でない茶碗にたどり着く最短手数を求めま…
https://atcoder.jp/contests/abc403/tasks/abc403_fDPなのですが、足し算の結果は次に括弧をつけないと掛け算に使えないところがいやらしいので、掛け算に使えるのと使えないの両方の値を保持しておきます。あと111とかは最初に決めておきます。 // Shortes…
https://atcoder.jp/contests/abc404/tasks/abc404_d動物園に行く回数は3通りなので合計通りです。計算量は、となり十分に間に合います。状態を動物を何回見たかとしますが、1種類の2ビットで表せるので、u128を2つ使えばよいです。同じ状態で最小の金額だけ…