AOJ
関数 max() や min() を扱う練習! 問題へのリンク 問題概要 物理、化学、生物、地学、歴史、地理のテストで 点を得た。 物理、化学、生物、地学から 3 科目 歴史、地理から 1 科目 を選択したときの総得点の最大値を求めよ。 制約 考えたこと 結局、「物理…
価格系の問題! 問題へのリンク 問題概要 水道を リットル使用する。X 社と Y 社の料金体系は次のようになっている。 X 社:1 リットルあたり 円かかる Y 社:基本料金は 円であり、使用料が リットルを超えると 1 リットル超えるごとに 円かかる どちらを選…
これは易しめの問題 問題へのリンク 問題概要 太郎君、次郎君、三郎君、四郎君、花子さんの 5 人がテストを受けた。テストの得点は 点であった。 これらの得点について、40 点未満だったら 40 点にした状態での平均点を求めよ。 考えたこと に対して、40 点…
切り上げ処理! 問題へのリンク 問題概要 冬休みは 日ある。 国語の宿題は ページあって、1 日に ページ進めることができる 算数の宿題は ページあって、1 日に ページ進めることができる 1 日に国語と算数を両方進めることもできる。冬休みのうち、宿題をや…
関数 min() が使えると楽! 問題へのリンク 問題概要 3 種類のパスタから 1 つ、2 種類のジュースから 1 つ選んで注文する。各パスタの価格と、各ジュールの価格が与えられる。 その金額の総和から 50 円を引いた金額を支払う。支払う金額の最小値を求めよ。…
一次予選が始まる前の JOI 予選問題の中でも、比較的易しめの問題 問題へのリンク 問題概要 4 回の移動をした。各移動に要した時間は 秒であった。 この総合時間が何分何秒であるかを求めよ。 考えたこと を求めましょう。その値を total としたとき、答えは…
for 文を使わなくても解けるけど、使えると楽! 問題へのリンク 問題概要 10 冊の本を買った。その総額と、そのうちの 9 冊の価格が分かっている。残り 1 冊の本の価格を求めよ。 考えたこと まず総額の入力データを読み込みましょう。 そのあと、9 個の整数…
tuple 値を上手に扱う問題! 問題へのリンク 問題概要 A さん、B さん、C さんの出社時刻と退社時刻がそれぞれ与えられる。時刻は 3 つの整数 で与えられ、それぞれ時刻の時間、分、秒を表す。 3 人それぞれの出勤時間を上述の 3 つの整数で表せ。 制約 考え…
実はクエリごとに毎回愚直に Dijkstra 法を回しても間に合う! 問題へのリンク 問題概要 最初、辺数 0 本、頂点数 個のグラフが与えられる。頂点番号は である。このグラフに対して 回のクエリが投げられる。 クエリタイプ 0:2 頂点 が指定されるので、頂点…
平行移動量の候補を絞る考え方を使う! 問題へのリンク 問題概要 座標平面上に 個の星を表す点 が与えられる(星座を成している)。また、それとは別に座標平面上に 個の点 が与えられる。 点 を一斉にある量だけ平行移動すると、それらすべてが、上に述べた…
ちょっと実装が大変なので、頑張って実装しよう! 問題へのリンク 問題概要 太郎君と花子さんが大富豪を模したゲームをする。 の書かれたカードを、 枚ずつ、太郎君と花子さんに配る。太郎君に配られたカードに書かれた 個の数値が与えられる。2 人で次のよ…
近年の ABC A 問題ではよくある「文字列の部分文字列を調べる」系の問題 問題へのリンク 問題概要 文字列 が与えられる。この文字列に含まれる "JOI" の個数と、"IOI" の個数をそれぞれ求めよ。 制約 考えたこと この問題よりも易しいバージョンとして、「文…
今や超有名な Greedy 問題「コインの枚数最小化問題」 問題へのリンク 問題概要 JOI 雑貨店には硬貨は 500 円、100 円、50 円、10 円、5 円、1 円の硬貨が十分な枚数ある。 円の買い物をして 1000 円を支払った太郎くんに、硬貨の枚数が最小となるようにお釣…
少し数学チックな問題! 問題へのリンク 問題概要 二次元の座標平面上に 個の点がある。点 の座標は である。 これら 個の点から 4 個を選ぶ。選んだ 4 点が正方形の頂点となる場合についての、正方形の面積の最大値を答えよ。 制約 考えたこと であるような…
とても色んな解法が考えられそうだ。 問題へのリンク 問題概要 以上 以下の 個の整数から相異なる 個の整数を選んで並べて得られる数列 が与えられる。 今、この数列の中に である要素があるならば、その要素を 1 以上 以下の好きな整数に書き換えてよい。 …
切り上げ処理! 問題へのリンク 問題概要 鉛筆を 本以上買いたい。買うための手段として、次の 2 セットがある。いずれかのセットを選び、選んだセットをいくつか購入することとする。両方のセットを選ぶことはできない。 セット X:1 セットあたり 本あり、…
北大セットの D 問題。人生で初めて行列木定理を使った! 問題へのリンク editorials 問題概要 頂点数 、辺数 の連結な単純無向グラフが与えられる。 今、このグラフにおいて連結性を保ったまま 本の辺を削除する。そしてこのとき閉路が 1 個残るので、閉路…
UnionFind を使って、差分更新を頑張る! UnionFind はオンラインの処理を簡単に実現できることが強みで、それを問いかける教育的問題ですね。他にも「左右からの結果を前処理する」という典型テクも使います! 問題へのリンク 問題概要 のグリッドがあって…
データを上手に持って、差分更新する系の問題 問題へのリンク 問題概要 のグリッドがあって、各マスは文字 '#' か '.' のいずれかが書かれている。先手は '#' の個数が得点となり、後手は '.' の個数が得点となる。双方得点を最大化したい。 先手は行を 1 つ…
次数制約つきのグラフを構築するためには、次数の大きいところから Greedy というよく知られた問題! 問題へのリンク 問題概要 正の整数からなる長さ の数列 が与えられる。 以下の条件を満たすような、頂点数 のグラフが存在するかどうかを判定せよ。 単純…
最小費用流アルゴリズムを実装したときの verify に 問題へのリンク 問題概要 頂点数 、辺数 のフローコストネットワークが与えられる。 番目の辺は頂点 から頂点 へ張られていて、容量は 、単位流量あたりのコストは である。 頂点 を始点、頂点 を終点とし…
最大流アルゴリズムを実装したときの verify に 問題へのリンク 問題概要 頂点数 、辺数 のフローネットワークが与えられる。 番目の辺は頂点 から頂点 へ張られていて、容量は である。 頂点 を始点、頂点 を終点とした最大流値を求めよ。 制約 考えたこと …
アドホックに構文解析した。カッコ列の問題とみなして、stack で処理した。 問題へのリンク 問題概要 次のような「配列を宣言したり配列に値を代入したりする処理を表すプログラム」が与えられる。 a[2147483647] a[0]=1 B[2] B[a[0]]=2 a[B[a[0]]]=3 a[2147…
至ってシンプルな構文解析問題。ただちょっと仕様が不明瞭なところがある気もする。 問題へのリンク 問題概要 次のように、何個かの計算式を表す文字列 が与えられるので計算結果を出力せよ。 2 4-2*3= 4*(8+4+3)= 式は数値、演算記号、かっこからなり、= で…
アドホックにも実装できそうだけど、構文解析ライブラリで殴った! 問題へのリンク 問題概要 0 以上 9 以下の整数値に対して「+」「×」で連結して得られる長さ の文字列 が与えられる。たとえば以下のような文字列が与えられる。 1+2*3+4 また、Bob がこの式…
BIT を Wavelet Matrix に乗せたやつで解いてみた。加算クエリがないので大袈裟ではある。 問題へのリンク 問題概要 二次元平面上に 個の格子点がある。これらの格子点について、次の 個のクエリに答えよ。 長方形領域が与えられるので、その領域に含まれる…
Wavelet Matrix の prev_value や next_value が使える問題! 問題へのリンク 問題概要 サイズ の数列 が与えられる。次の 個のクエリに答えよ。 が与えられるので、数列の区間 の値のうち、 との差の最小値を答えよ。 制約 考えたこと Wavelet Matrix の関…
「区間値更新」と「区間和取得」の遅延評価セグ木。 問題へのリンク 問題概要 数列 に対して、次の 2 種類のクエリを 個処理せよ。なお、数列は最初は 0 に初期化されているとする。 クエリタイプ (0 s t x): を に変更する クエリタイプ (1 s t): の総和…
「区間加算」と「区間和取得」の遅延評価セグ木。 問題へのリンク 問題概要 数列 に対して、次の 2 種類のクエリを 個処理せよ。なお、数列は最初は 0 に初期化されているとする。 クエリタイプ (0 s t x): に を加算する クエリタイプ (1 s t): の総和を…
Starry Sky Tree は「区間 加算」「区間最小値取得」を処理する遅延セグ木だった。 今回は「区間 更新」「区間最小値取得」を処理する遅延セグ木を実装する。 問題へのリンク 問題概要 数列 に対して、次の 2 種類のクエリを 個処理せよ。なお、数列は最初は…