2023-01-01から1年間の記事一覧
伝説の誤差問題!! 誤差について学べる、とても教育的な問題。 問題へのリンク 問題概要 人がコイントスをしました。各人には と番号がついています。 人目は、 回表が出て、 回裏が出ました。 人目のコイントスの成功率は と定義されます。 人 の番号を、…
久しぶりに本当に簡単だと言える A 問題! 問題へのリンク 問題概要 2 つの文字列 が与えられる (これは苗字と名前を表している)。 + " " + "san" を出力せよ。 コード 標準入力から文字列を受け取る技術があれば解ける問題。 を出力したあと、" san" を出力…
for 文の練習 問題へのリンク 問題概要 正の整数 が与えられる。 の値を求めよ。 コード とは、 を 回かけた値である。よって、次のように for 文で求められる。 long long res = 1; for (int i = 0; i < B; ++i) { // A をかける操作を B 回行う res *= A; …
これも条件をうまく言い換えることが大切になる問題 問題へのリンク 問題概要 個の整数 が与えられる。 これらの値がすべて等しいかどうかを判定せよ。 コード すごく色んな解法がある!!!! 個人的に最も楽だと思うのは、 に対して、 ならば Yes そうでな…
数学的な問題。 問題へのリンク 問題概要 正の整数 が与えられる。0 以上の整数 であって、 となるものが存在するかどうかを判定せよ。 制約 考えたこと 問題を解くときに、条件をわかりやすく言い換えていくことはとても大事! 今回は次のように考えるとわ…
C 問題としてはかなりハードな問題であった。 問題へのリンク 問題概要 個の文字列 のうち、文字列 との編集距離が 1 以下であるものの個数を求めよ。 なお、文字列 と文字列 の編集距離が 1 以下であるとは、以下のいずれかが成り立つことを指す。 である …
発想の転換が必要になる。与えられた数の順列を考えるのではなく、平方数の方を列挙していく。 問題へのリンク 問題概要 数字のみからなる長さ の文字列 が与えられる。 を並び替えて得られる文字列であって、平方数を表すものが何通りあるかを答えよ。 制約…
問題を典型パーツに分解して考察を積み上げていく系の、とても教育的な問題! 問題へのリンク 問題概要 個の文字列 と文字列 が与えられる。以下の条件を満たす の組の個数を求めよ。 と をこの順に連結してできる文字列から、いくつかの文字を選び、順序を…
セグ木上で DP する問題として、人生で最初に解くべき問題と言えるかもしれない! 問題へのリンク 問題概要 個の区間がある。各区間 は、 で重みは である。 これらの区間からいくつか選ぶ方法のうち、 全体を被覆するものについて、最小重みを求めよ。 制約…
「平均値の最小化」に基づく二分探索 + 最小全域問題 問題へのリンク 問題概要 (意訳) 頂点数 、辺数 の重み付き単純無向グラフが与えられる。各辺 は、重みが であり、長さが である。 グラフの辺集合のうち、すべての頂点を連結にするものを考える。そのよ…
「平均値の最適化」を二分探索に帰着させる系の典型問題! 問題へのリンク 問題概要 体のモンスターがいて、それぞれ質量は 、魔力は である。 また、 体のお助けモンスターがいて、それぞれ質量は 、魔力は である。 今、これら 体のモンスターからちょうど…
とても典型的な「平均値の最大化」→「二分探索」の問題! 問題へのリンク 問題概要 個の食塩水がある。 番目の食塩水は、重さが グラムであり、濃度 パーセントである。 これらの食塩水から 個選んで混ぜてできる食塩水の濃度の最大値を求めよ。 制約 考えた…
とても教育的問題!! 蟻本の二分探索の節に「平均値の最大化」があるけど、まさにそれ!!! 問題へのリンク 問題概要 頂点数 、辺数 の DAG が与えられる。各辺 について、 であることが保証される。 各辺 には、美しさ と、コスト がついている。 頂点 0 …
一点加算を含む、長方形領域内部の総和取得クエリに答えていく!動的二次元 BIT や、BIT on Wavelet Matrix などで通せる。 問題へのリンク 問題概要 二次元平面上に 点ある。 番目の点の座標は であり、重みは である。次の 個のクエリに答えよ。 クエリタ…
色んな解法があると思う。動的二次元 BIT や Wavelet Matrix など。ここでは、BIT on Wavelet Matrix (加算クエリはないのでやや過剰) で通してみた。 問題へのリンク 問題概要 二次元平面上に 点ある。 番目の点の座標は であり、重みは である。次の 個の…
Wavelet Matrix の機能の verify 第二弾!!! 問題へのリンク 問題概要 サイズ の数列 が与えられる。次の 個のクエリに答えよ。 区間 において値 が出現する回数を答えよ。 制約 考えたこと これも Wavelet Matrix の典型機能である。rank() という関数が…
数列の区間について、 番目に小さい値を求めていく。Wavelet Matrix で処理できる典型クエリ! 問題へのリンク 問題概要 サイズ の数列 が与えられる。次の 個のクエリに答えよ。 区間 において 番目 (0-indexed) に小さい数を答えよ 制約 考えたこと Wavele…
Cartesian Tree を実装しよう! 具体的には、Yosupo Library Checker の問題「Cartesian Tree」を通すことにする。 問題概要 長さ の数列 (互いに異なる) から誘導される Cartesian Tree を求めて出力せよ。 具体的には Cartesian Tree の各頂点について、そ…
Yosupo Judge で最初に解くであろう問題 問題へのリンク 問題概要 2 つの整数 が与えられるので、 を出力してください。 制約 考えたこと 10Q 相当の問題。標準入力ができる人なら解けるはず。 コード #include <iostream> #include <vector> using namespace std; int main() </vector></iostream>…
BIT を Wavelet Matrix に乗せたやつで解いてみた。加算クエリがないので大袈裟ではある。 問題へのリンク 問題概要 二次元平面上に 個の格子点がある。これらの格子点について、次の 個のクエリに答えよ。 長方形領域が与えられるので、その領域に含まれる…
Suffix Array 上をひたすら頑張って探索する感じ 問題へのリンク 問題概要 個の文字列 が与えられる (これらの文字列はすべて英小文字のみからなる)。 以下の条件を満たす文字列 の個数を求めよ。 英小文字のみからなる のうち、ちょうど 1 個の部分文字列で…
大好き!!ガウス整数の問題リストがまた 1 個増えた! 問題へのリンク 問題概要 1 つの正の整数 が与えられる。 二次元平面上の任意の格子点を頂点としたグラフにおいて、距離の平方が であるような 2 点間に辺を張っていく。 こうしてできたグラフの連結成…
Wavelet Matrix の prev_value や next_value が使える問題! 問題へのリンク 問題概要 サイズ の数列 が与えられる。次の 個のクエリに答えよ。 が与えられるので、数列の区間 の値のうち、 との差の最小値を答えよ。 制約 考えたこと Wavelet Matrix の関…
Wavelet Matrix の練習に 問題へのリンク 問題概要 初期状態が の順列である数列 が与えられる。 次の 2 種類のクエリに答えよ。なお、 番目 () のクエリをこなした後には、数列は 個に分割された状態となる。 クエリタイプ 1:群数列の 番目について、先頭…
あまりにも色んな解法がある問題 問題へのリンク 問題概要 の順列 と正の整数 が与えられる。 各 に対して、順列の先頭から 個の値の中での 番目に大きい値を求めよ。 制約 考えたこと 次の問題の下位互換と言える。 drken1215.hatenablog.com この上位互換…
怒りの場合分け。ちょっと苦手系だけど一発 AC できてよかった。 問題へのリンク 問題概要 高橋君は現在 にいて、荷物は にあり、荷物を目的地 に届けたい。 高橋君は荷物のある位置に入ることはできず、荷物と隣接した状態から荷物の方向に移動すると、荷物…
よくある区間分割の DP だけど、それでよいことに思い至るのが難しいかもしれない。 問題へのリンク 問題概要 曲あって、それぞれの曲の長さは である。 今、時刻 0 から開始して「曲を一様ランダムに流し、それが終わったらまた一様ランダムに曲を選択して…
素朴なシミュレーションが通るものの、それを正確に実装するのも結構大変 問題へのリンク 問題概要 種類のスライムがいる。 種類目のスライムは、サイズが であり、 体いる。 一般にサイズが であるスライムを 2 体合体させて、新たにサイズが のスライムを …
1 つ 1 つの要素は難しくないが、実装がとにかく重たい!落ち着いて整理して考えたい問題。 問題へのリンク 問題概要 プレイヤー が、配点が である 個の問題からなるコンテストに挑んでいる。なお、 は 以上 以下の の倍数である。 プレイヤー には最初から…
ペアのソート。ソートの比較関数を作る系。 問題へのリンク 問題概要 人のプレイヤー によるリーグ戦の戦績表が下のように与えられる。 7 -oxoxox x-xxxox oo-xoox xoo-ooo ooxx-ox xxxxx-x oooxoo- プレイヤーを勝ち星数が多い順に並び替えよ。ただし、タイ…