2024-02-01から1ヶ月間の記事一覧

AtCoder Beginner Contest 342 F

https://atcoder.jp/contests/abc342/tasks/abc342_fまず最終的にyがいくつになるかの確率を求めて、自分の勝つ確率を求めます。そこでやめたときの勝つ確率と、サイコロを振ったときの勝つ確率を求めます。 // Black Jack #![allow(non_snake_case)] use st…

AtCoder Beginner Contest 342 E

https://atcoder.jp/contests/abc342/tasks/abc342_e逆から考えれば単なるダイクストラです。 // Square Pair #![allow(non_snake_case)] use std::cmp::min; //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T { let mut line = String::n</t:>…

AtCoder Beginner Contest 342 D

https://atcoder.jp/contests/abc342/tasks/abc342_d基本的には、素因数分解して、指数が奇数の素数だけ残して、同じものを数えればよいです。 // Square Pair #![allow(non_snake_case)] //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T</t:>…

MojoでProject Euler 17

https://projecteuler.net/problem=17Mojoには、 let v = ["one", "two", ...] みたいなのがあるにはあるんですが、これはListLiteralといって、要素にアクセスするにはタプルと同じように、 print(v.get[1, StringLiteral]()) コンパイル時にインデックスを…

AtCoder Beginner Contest 341 D

https://atcoder.jp/contests/abc341/tasks/abc341_d包除原理+二分探索です。(first, last]とするとよいです。 // Only one of two #![allow(non_snake_case)] //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T { let mut line = String:</t:>…

MojoでProject Euler 16

https://projecteuler.net/problem=16Problem 13のBigIntegerに掛け算を付け加えただけです。 from math import max import sys #################### BigInteger #################### struct BigInteger(CollectionElement): var v: DynamicVector[Int] fn…

AtCoder Beginner Contest 340 F

https://atcoder.jp/contests/abc340/tasks/abc340_fを解くだけですが、けっこういやらしいですね。 // F - S = 1 #![allow(non_snake_case)] use std::cmp::min; //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T { let mut line = Strin</t:>…

AtCoder Beginner Contest 340 E

https://atcoder.jp/contests/abc340/tasks/abc340_e入力例1で、初回で2 2 0 5 6になって、2回目は6を取り出して、0に2を1~4に1を足します。このように範囲に同じ値を足すので、そういう木を作ればよいです。 // Mancala 2 #![allow(non_snake_case)] /////…

AtCoder Beginner Contest 340 D

https://atcoder.jp/contests/abc340/tasks/abc340_d単なるダイクストラ法です。 隣が2つと決まっているので、グラフをVecにしやすいです。 // Super Takahashi Bros. #![allow(non_snake_case)] //////////////////// library //////////////////// fn read<T: std::str::FromStr></t:>…

AtCoder Beginner Contest 339 E

https://atcoder.jp/contests/abc339/tasks/abc339_e簡単なDPです。まで最大の列の長さをとすると、 となります。ただ、このままだと計算量がで間に合わないので、範囲の最大値を取れる木を用意します。 // Smooth Subsequence #![allow(non_snake_case)] us…

AtCoder Beginner Contest 339 D

https://atcoder.jp/contests/abc339/tasks/abc339_d二人のプレーヤーの位置を状態としたDPですね。最初、HashMapを使っていたのですが、実行時間ががギリギリで、4次元の配列に直したら速くなりました。 // Synchronized Players #![allow(non_snake_case)]…