けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

現実世界の題材を扱った問題

AtCoder ABC 179 A - Plural Form (灰色, 100 点)

if 文の練習! 問題へのリンク 問題概要 文字列 が与えられる。 の末尾の文字が 's' のときは に "es" をつけて出力し、それ以外のときは に "s" をつけて出力せよ。 解法 の末尾の文字は S.back() で取得できる (C++)。その値によって、処理を分岐すればよ…

AtCoder ABC 152 A - AC or WA (灰色, 100 点)

現実世界に即した if 文の練習問題。こういうのは面白くていいね! 問題へのリンク 問題概要 個のテストケースのうち、 個の正解した。 AC となるかどうかを判定せよ。 制約 解法 AC となる条件を整理すると「」と書ける。よって、これを if 文で判定すれば…

AtCoder ABC 147 A - Blackjack (灰色, 100 点)

if 文の練習。こういう現実のゲームを題材とした問題は面白いね! 問題へのリンク 問題概要 以上 以下の 3 個の整数が与えられる。 これらの整数の総和が 22 以上ならば "bust"、そうでなければ "win" を出力せよ。 解法 3 個の整数を受け取って、総和が 22 …

AtCoder ABC 085 A - Already 2018 (灰色, 100 点)

実務をやっていると汎用性など考えたくなるけど、これは入力が限定されているので、「特定の文字を変える」だけで OK! 問題へのリンク 問題概要 2017 年の日付が "2017/01/19" などと与えられる。 これを "2018/01/19" のように、2018 年の日付に変換せよ。…

AtCoder ABC 054 A - One Card Poker (灰色, 100 点)

やり方を工夫しないと迷いそう 問題へのリンク 問題概要 Alice と Bob は、それぞれ と書かれたカードを持っている。カードの数字は、 のいずれかである。カードの数字の強さは、 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < 11 < 12 < 13 < 1 である。 Alice と …

AtCoder ABC 053 A - ABC/ARC (灰色, 100 点)

if 文の練習問題。 問題へのリンク 問題概要 整数 が与えられる。 ならば "ABC" ならば "ARC" を出力せよ。 解法 if 文で処理を分岐すれば OK。 #include <bits/stdc++.h> using namespace std; int main() { int x; cin >> x; if (x < 1200) cout << "ABC" << endl; else c</bits/stdc++.h>…

JOI 予選 2007 E - 品質検査 (AOJ 0514, 難易度 5)

この辺りから難しくなって来てる。「 で合格・不合格」という条件をどのように適切に言い換えるかが問われている。 問題へのリンク 問題概要 電源が 個、モーターが 個、ケーブルが 個ある。電源は と番号づけられていて、モーターは と番号づけられていて、…

JOI 予選 2007 C - シーザー暗号 (AOJ 0512, 難易度 2)

アルファベットを戻す処理を書くのが最初は難しいかもしれない 問題へのリンク editorial 問題概要 シーザー暗号とは、文字列に対して、各文字を 3 つずつ進めたものに変換するものである。ただし、X, Y, Z はそれぞれ A, B, C となる。具体的には、次のよう…

AtCoder ABC 313 A - To Be Saikyo (灰色, 100 点)

トップタイがある場合に注意! 問題へのリンク 問題概要 (0 始まりに表現改) 人の人 がいる。人 のプログラミング力は である。 人 は必要に応じてプログラミング力を鍛えることで、 人の中で単独トップになろうとしている。 そのためにプログラミング力をい…

AtCoder ABC 303 D - Shift vs. CapsLock (茶色, 400 点)

ランレングス圧縮をする問題に一瞬見えるかもしれない。でもそんなことしないで、最初から最後まで綺麗に DP で殴れる! 問題へのリンク 問題概要 文字 'a' と 'A' のみからなる長さ の文字列 が与えられる。 以下のキーボード操作を繰り返すことで、この文…

AOJ 2567 SIRO Challenge (JAG 模擬地区 2013 C) (400 点)

「ABC 301 E - Pac-Takahashi」の類題とも言うべき ICPC 系の問題! 問題へのリンク (AOJ) 問題へのリンク (AtCoder) editorials 問題概要 頂点数 、辺数 の重み付き無向グラフが与えられる。頂点番号は とする。 番目の辺は頂点 を結んでおり、その重みは …

第4回 ドワンゴからの挑戦状 予選 2018 C - Kill/Death (500 点)

分割数のいい感じの問題! 問題へのリンク 問題概要 長さ の数列 killA, killB が与えられる。この 2 つの広義単調減少である。 次の条件を満たす長さ の数列 deathA, deathB の組の個数を 1000000007 で割ったあまりを求めよ。 killA の総和 = deathB の総…

AOJ 1088 School Excursion

最小費用の最大流を流すネットワークフロー問題! 問題へのリンク editorial 問題概要 個の駅があり、 と番号づけられている。 駅 と駅 の間には 種類の電車が走っていて、 番目の電車は 駅 を時刻 に出発して、 駅 に時刻 に到着し、 料金は である。 今、 …

AOJ 2207 無矛盾な単位系 (UTPC 2010 D)

これも重み付き Union-Find で解ける問題! 問題へのリンク editorial 問題概要 具体例として一つの入力ケースを示す。 7 1 kilometre = 10^3 metre 1 megametre = 10^3 kilometre 1 metre = 10^-6 megametre 1 terametre = 10^3 gigametre 1 petametre = 10…

JOI 春合宿 2011 day4-3 IOI (難易度 6)

lower_bound を上手に駆使する系 ジャッジページへのリンク 問題概要 人の選手が、コンテストに参加している。各選手の現在の得点は である。 どの選手についても、今後加算される可能性のある得点は、 点以上 点以下となっている ( 問中 問の競技が終了して…

AtCoder ABC 183 D - Water Heater (茶色, 400 点)

条件反射でいもす法!!! 問題へのリンク 問題概要 人がいる。 人目の人は、時刻 から時刻 の間で、毎分 リットルずつお湯を使う。 どの時刻においても、使用されているお湯の合計量が、毎分 リットル以内におさまるかどうかを判定せよ。 制約 考えたこと …

AOJ 2566 Restore Calculation (JAG 模擬地区 2013 B) (350 点)

これが生まれて初めての作問だった!!! AOJ-ICPC で ☆4 個ついてて嬉しい! 問題へのリンク editorial 問題概要 虫食算が与えられる。解の個数を 1000000007 で割ったあまりを求めたい。 より正確には長さ の 3 個の文字列 が与えられる。これらは '?' か …

Codeforces Round #625 (Div. 1) B. Navigation System (R1800)

似たようなことは考えたことがあった。経路復元に関する理解を問う教育的問題! 問題へのリンク 問題概要 重みなしの有向グラフと、2 頂点 s, t を始点と終点にもつパスが与えられる。今、われわれはナビに沿ってこのパスをたどっている。ナビの仕様は次の通…

AtCoder ABC 131 D - Megalomania (茶色, 400 点)

いわゆる、「必要条件を列挙したら十分条件になっている」というタイプの教育的な Greedy 問題ですね。 問題へのリンク 問題概要 個の仕事があって、仕事 は、 の時間を要し、時刻 までに終わらなければならない。 時刻 0 に仕事を開始する。 個の仕事をすべ…

AtCoder AGC 012 A - AtCoder Group Contest (茶色, 300 点)

これほとんど drken1215.hatenablog.com と同じ問題!!! 問題へのリンク 問題概要 を整数として 個の整数 が与えられる。これらを 3 個ずつ 組のペアを作る。 ペアリングのスコアは、各ペアにおいて 2 番目に大きい値の総和で決まる。ペアリングのスコアを…

AOJ 2427 ほそながいところ (JAG 夏合宿 2012 day2-D) (800 点)

「全探索でもここまで難しいやつもある」という例としてよく挙げられる問題。 ここのページに僕なりの 全探索 重み付き Union-Find 木を使いながら判定 をした解法を記した。