JOI予選・二次予選
グラフの基本問題! 問題へのリンク 問題概要 の人 がいる。 組の友達関係があって、 組目の友達は人 と である。 人 1 の友達と、人 1 の友達の友達に相当する人 (人 1 を除く) が何人いるかを答えよ。 制約 解法 この問題はグラフの練習問題といえる。グラ…
すごろくを題材にした問題。すごろくの各マスには「oo マス進む」などの指示がある。これを上手に管理しよう。 問題へのリンク 問題概要 マス からなる双六が与えられる。マス 1 がスタート、マス 以上がゴールである。 回サイコロを振って、 回目には目 だ…
ちょっと重たい全探索問題 問題へのリンク 問題概要 の形に配列された二次元文字列 が与えられる。 に対して、次の操作を繰り返すことで に一致させたい。 反時計回りに 90 度回転する (コスト 1) 時計回りに 90 度回転する (コスト 1) 1 マス選んで文字を変…
スタックを用いたシミュレーション問題! 問題へのリンク 問題概要 最初、本は積まれていない。次の 回のクエリに答えよ 【クエリ】 各クエリでは文字列 が与えられる。 が "READ" ではないとき、タイトルが である本が新たに上に積まれる が "READ" である…
一見すると計算量が厳しい問題にも見える。ちょっとした発想の転換が必要になる。 問題へのリンク 問題概要 正の整数 が与えられる。次の条件を満たす 個の整数 の組が何個あるかを 100000 で割った値を求めよ。 制約 考えたこと 安直に考えると、次のような…
ちょっと実装が重たい。 問題へのリンク 問題概要 グリッドが与えられる。最初、どのマスにもなんらかの色(整数値)がついている。 マス から辺で接しているマスへの移動を繰り返し、マス と色が異なるマスに入ることなく移動できるマスの集まりを、マス の…
「最大値と最小値の差」を最小化せよと言われたら、最大値または最小値を固定すると上手くいくことが多い! 問題へのリンク 問題概要 サイズが であるような 4 つの数列 が与えられる。 これらの数列から 1 個ずつ要素を選んで とする。 の値の最小値を求め…
シミュレーションと呼ばれるジャンルの中では、最も重たい部類の問題 問題へのリンク 問題概要 1 から までの整数の書かれたカードがこの順に並んでいる。このカード列に以下の 回の操作を行う。 回目の操作は、整数 ()によって表される。操作前のカードの…
再帰関数を使った全探索の練習! こういうのは本当に練習になる。 問題へのリンク 問題概要 各マスが 0 または 1 であるような の二次元グリッド が与えられる。 グリッド上の各マスを渡り歩いていく移動経路のうち、次の条件を満たすものを考える。 1 回の…
ソートの練習問題 問題へのリンク 問題概要 20 個の整数が与えられる。 前半 10 個の整数のうち、大きい順に 3 個の整数の総和 後半 10 個の整数のうち、大きい順に 3 個の整数の総和 をそれぞれ求めよ。 解法 前半ができれば後半も同様なので、前半を考えま…
文字列を左から見ていき、隣接する 2 文字が異なる箇所を見つけるやいなや、マルバツスタンプを使う、という Greedy でよい! 問題へのリンク 問題概要 マルスタンプ、バツスタンプ、マルバツスタンプの 3 種類がある。 マルスタンプを使うと、文字 'O' を印…
シミュレーションを冷静に実装しよう! 問題へのリンク 問題概要 マス があって、マス 1 はスタート、マス 2019 はゴールである。 個のコマがあり、それぞれ 番目にマスに置かれている。 次の 回の操作を実行する。 回目の操作ではコマ を動かそうとする も…
結構頭がこんがらがる問題だと思う。 問題へのリンク 問題概要 あるソーシャルゲームでは、1 日につき 1 回までログインすることができ、ログインするたびに 枚のコインが得られる。 さらに、月曜日から日曜日まで 7 日連続でログインすると、そのたびに、追…
算数的な問題。頭がごっちゃになりやすいので頑張って求めよう。 問題へのリンク 問題概要 一般に、0 ℃ 未満の肉は凍っていて、0 ℃ の肉は凍っていることと凍っていないことがありえて、0 ℃ より温度の高い肉は凍っていない。また、 凍っている肉を 1 ℃ 温め…
関数 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 円を支払った太郎くんに、硬貨の枚数が最小となるようにお釣…
切り上げ処理! 問題へのリンク 問題概要 鉛筆を 本以上買いたい。買うための手段として、次の 2 セットがある。いずれかのセットを選び、選んだセットをいくつか購入することとする。両方のセットを選ぶことはできない。 セット X:1 セットあたり 本あり、…
DP の典型問題だけど、最初は難しく感じるかもしれない。あと、縦横が微妙に混乱するね。 問題へのリンク editorial 問題概要 (今風に表現改) のグリッドが与えられる。このグリッドで上から 番目、左から 番目のマスを と書くことにする。最初、マス に駒が…
この辺りから難しくなって来てる。「 で合格・不合格」という条件をどのように適切に言い換えるかが問われている。 問題へのリンク 問題概要 電源が 個、モーターが 個、ケーブルが 個ある。電源は と番号づけられていて、モーターは と番号づけられていて、…