Time Limit: 2 sec / Memory Limit: 256 MB
この問題は、暫定ランキングではペナルティ表示がありますが、最終ランキングではペナルティはありません。
提出回数・提出時間は最終ランキングに影響しないため、コンテスト終了時間ギリギリまで何度でも提出してください。
配点 : 100 + ??? 点
配点 : 100 点
問題文
この問題の回答は今年の B 問題の入力をひとつ作るために利用されます。B 問題も併せてお読みください。
下記の制約を満たす V 個の頂点と E 本の辺からなる無向グラフ 1 つと各頂点の座標を出力してください。
なお、グラフが連結である必要はありません。
ただし、 Text (cat) で提出してください。
制約
- 1 \leq V \leq 1000
- 0 \leq E \leq V \times (V-1) / 2
- 1 \leq a_i, b_i \leq V
- 0 \leq x_i, y_i \leq 10000
- a_i \neq b_i
- i \neq j ならば x_i \neq x_j または y_i \neq y_j
- i 番目の頂点は座標 (x_i,\ y_i) に位置する点であるものとする
- j 番目の辺は頂点 a_j と頂点 b_j を端点とする線分であるものとする
- 辺は他の辺と端点同士以外で接したり交差したり重なったりしない
- V, E, a_i, b_i, x_i, y_i は整数である
入力
この問題では入力は与えられない。
出力
この問題に使用できる言語は Text (cat) のみである。
問題の制約を満たす無向グラフと各頂点の座標を以下の形式で出力せよ。
V E a_1 b_1 a_2 b_2 : a_E b_E x_1 y_1 x_2 y_2 : x_V y_V
配点
この問題の得点は、コンテスト開催時間終了後に下記の操作が行われて確定する。
コンテスト開催時間中に Text (cat) において AC となったあなたの A 問題の提出のうち、最後の提出を、あなたの A 問題の本提出とする。
コンテスト開催時間中に AC となった他の本戦参加者の B 問題の提出のうち、各参加者の最後の提出を、その参加者の B 問題の本提出とする。
A 問題の本提出を行うと、100 点が与えられる。
コンテスト開催時間終了後、あなたの A 問題の本提出のうち B 問題での入力に該当する部分(1~E+1 行目)(入力部分と呼ぶ)が、他の各本戦参加者の B 問題の本提出に入力として与えられる。
他の本戦参加者 n 人の B 問題の本提出があなたの A 問題の本提出の入力部分に対して誤答し、他の本戦参加者 m 人の B 問題の本提出がなかった場合、あなたに上記とは別に 10(n+m) 点が与えられる。
Time Limit: 2 sec / Memory Limit: 256 MB
この問題は、暫定ランキングではペナルティ表示がありますが、最終ランキングではペナルティはありません。
提出回数・提出時間は最終ランキングに影響しないため、コンテスト終了時間ギリギリまで何度でも提出してください。
配点 : 200 + ??? 点
配点 : 200 点
問題文
今年の A 問題の制約を満たすグラフが与えられます。
このグラフを隣接する頂点が同じ色にならないように 4 色で彩色してください。
制約
- 今年の A 問題を参照
- ただし、コンテスト開催時間中は、 1 \leq V \leq 10 の入力に対して正答すると AC となる
入力
入力は以下の形式で標準入力から与えられる。
V E a_1 b_1 a_2 b_2 : a_E b_E
出力
出力は V 行からなる。i 行目に頂点 i の色 c_i ( 1 \leq c_i \leq 4 ) を出力せよ。
配点
この問題の得点は、コンテスト開催時間終了後に以下の操作が行われて確定する。
コンテスト開催時間中に Text (cat) において AC となった他の本戦参加者の A 問題の提出のうち、各参加者の最後の提出を、その参加者の A 問題の本提出とする。
コンテスト開催時間中に AC となったあなたの B 問題の提出のうち、最後の提出を、あなたの B 問題の本提出とする。
B 問題の本提出を行うと、200 点が与えられる。
コンテスト開催時間終了後、他の参加者の A 問題の本提出のうち B 問題での入力に該当する部分(1~E+1 行目)(入力部分と呼ぶ)が、あなたの B 問題の本提出に入力として与えられる。
他の本戦参加者 n 人の A 問題の本提出の入力部分に対して、あなたの B 問題の本提出が正答し、他の本戦参加者 m 人の A 問題の本提出がなかった場合、あなたに上記とは別に 10(n+m) 点が与えられる。
入力例 1
4 4 1 2 2 3 3 4 4 1
出力例 1
1 2 3 4
入力例 2
5 3 1 2 2 3 3 4
出力例 2
1 2 3 4 1
Time Limit: 5 sec / Memory Limit: 512 MB
配点 : 700 点
問題文
文字列 S と、要素数 M の単語の集合 P=\{P_1,\ P_2,\ …,\ P_M\} が与えられます。単語 P_i は、整数の重み W_i を持っています。
文字列 S から、P に含まれる単語を重なり合わないように取り出すことを考えます。単語の重みの総和が最大値をとるように取り出すとき、その最大値はいくつでしょうか?
なお、同じ単語を複数回取り出した場合、それらの単語は別々に数えることとします。
制約
- 1 \leq |S| \leq 200000
- 1 \leq M \leq 5000
- 1 \leq |P_i| \leq 200
- 1 \leq W_i \leq 10000
- S, P_i は英小文字からなる文字列である
入力
入力は以下の形式で標準入力から与えられる。
S M P_1 : P_M W_1 : W_M
出力
単語の重みの総和の最大値を 1 行に出力せよ。
入力例 1
abcabcabc 3 ab bc ca 1 1 1
出力例 1
4
入力例 2
abracadabra 4 b abra cad rac 1 10 50 100
出力例 2
111
入力例 3
abcd 2 ad bc 1192 794
出力例 3
794
Time Limit: 5 sec / Memory Limit: 256 MB
配点 : 700 点
問題文
ハシモトくんは、 N 個のタスクを割り当てられています。
タスク i は、一つ目のオフィスで作業する場合は A_i の時間が、二つ目のオフィスで作業する場合は B_i の時間がかかります。
n 回目のオフィス間の移動には C \times (n - 1) + D の時間がかかります。
また、タスク間には依存関係が M 個あり、タスク X_i を終わらせた後でないとタスク Y_i に着手できません。
ハシモトくんが最適に行動し、全てのタスクを終わらせるまでの時間を最小化した場合、かかる時間はどの程度になるでしょうか?
なお、タスク処理開始・終了はどちらのオフィスであっても良いものとします。
制約
- 1 \leq N \leq 20
- 0 \leq M \leq N \times (N-1) / 2
- 0 \leq C \leq 1000
- 0 \leq D \leq 1000
- 0 \leq A_i, B_i \leq 1000
- 1 \leq X_i, Y_i \leq N
- i \neq j ならば X_i \neq X_j または Y_i \neq Y_j
- タスク間の依存関係に循環はない
- N, M, C, D, A_i, B_i, X_i, Y_i は整数である
入力
入力は以下の形式で標準入力から与えられる。
N M C D A_1 B_1 A_2 B_2 : A_N B_N X_1 Y_1 X_2 Y_2 : X_M Y_M
出力
ハシモトくんが全てのタスクを終えるまでに必要な最短の時間を 1 行に出力せよ。
入力例 1
3 2 1 1 1 10 10 1 1 10 1 2 2 3
出力例 1
6
入力例 2
3 0 1 1 1 10 10 1 1 10
出力例 2
4
入力例 3
3 2 100 100 1 10 10 1 1 10 3 2 2 1
出力例 3
12
入力例 4
4 4 3 8 100 1 1 100 1 100 100 1 1 2 1 3 2 4 3 4
出力例 4
23
Time Limit: 1 sec / Memory Limit: 256 MB
配点 : 900 点
問題文
天下一くんは N 個の肉を用意しました。それぞれの肉は横Lcm × 縦1cmの細長い形をしており、L個の1cm四方の部分に分かれています。それぞれの部分ごとに肉の硬さが決まっており、i番目の肉の左からj番目の部分の硬さをa_{i,j}とおきます。 N個の肉は、左端を揃えて上から順に縦に並べて置かれています。
天下一くんは、すべての肉を縦方向の1本の串により刺して串刺しを作ろうとしています。天下一くんは
- 肉のうちいずれか1つを左または右にkcmずらす、という操作を好きな回数行います。kは整数でなければいけません。このとき、コストk^2がかかります。ただし、同じ肉に対して2回以上ずらす操作を行ってはいけません。
- 肉をずらした後、ある位置に縦に串を刺します。串に突き刺さらない肉があってはいけません。それぞれの肉に対し、串が刺さった部分(串は十分細いため、いずれか1つの部分に突き刺さるものとします)の硬さだけコストがかかります。
コストの総和の最小値を求めてください。
制約
- 1 ≦ N ≦ 100
- 1 ≦ L ≦ 10000
- 1 ≦ a_{i,j} ≦ 10^9
入力
入力は以下の形式で標準入力から与えられる。
N L a_{1,1} … a_{i,L} : a_{N,1} … a_{N,L}
出力
N個肉を串刺しにするために必要なコストの総和の最小値を求めよ。
入力例 1
2 3 1 5 6 5 3 1
出力例 1
4
1つ目の肉を1cm右にずらし、2つ目の肉を1cm左にずらした上で、1つ目の肉の左から1つ目の部分に刺さるように串刺しにすると、ずらしたコストが1+1、突き刺した肉の硬さで1+1のコストがかかるため、合計4となります。コスト4未満で串刺しにする方法はありません。
入力例 2
3 4 1 3 5 2 8 3 5 7 3 5 1 4
出力例 2
7
入力例 3
4 5 8 12 20 9 15 5 4 8 15 12 20 18 10 3 9 15 7 13 14 4
出力例 3
25
Time Limit: 4 sec / Memory Limit: 256 MB
配点 : 1500 点
問題文
天下一トイズは、フィギュアの安売りで有名な玩具店です。この店は N 種類のフィギュアを取り扱っており、この問題ではそれらをフィギュア 1, フィギュア 2, ..., フィギュア N と呼びます。
店の 1 階ではフィギュアが個別に売られており、フィギュア i (1 ≦ i ≦ N) は 1 個 P_i 円で買うことができます。
店の 2 階にはフィギュアの自動販売機が置かれており、この機械に G 円を入れると、N 種類すべてのフィギュアから等確率で 1 個が出ます。この機械はフィギュアを自動で製造するので、各フィギュアが出る確率は常に 1/N です。
あなたは天下一トイズを訪れました。あなたの目的は、この店で N 種類すべてのフィギュアをそれぞれ 1 個以上入手することです。店の 1 階と 2 階をどのような順序で何度利用してもかまいません。また、使える金額に上限はありません。すべてのフィギュアを入手するまでの消費金額の期待値を最小化する戦略をとったとき、その期待値はいくらになるでしょうか?
制約
- 2 ≦ N ≦ 36
- 1 ≦ G ≦ 36
- 1 ≦ P_i ≦ 36
- 入力値はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
N G P_1 P_2 ... P_N
出力
すべてのフィギュアを入手するまでの消費金額の期待値を最小化する戦略をとったときの、消費金額の期待値を出力せよ。
出力は、ジャッジの出力との絶対誤差または相対誤差が 10^{-6} 以下であるとき、正解とみなされる。
入力例 1
2 4 5 6
出力例 1
9.5
フィギュアが 2 種類あり、店の 1 階ではフィギュア 1 を 5 円、フィギュア 2 を 6 円で買えます。また、店の 2 階の自動販売機に 4 円を入れると、等確率でどちらかのフィギュアが出ます。
ここでの最適な戦略は、「まず自動販売機でフィギュアを 1 個買い、出なかった方のアイテムを 1 階で買う」というものです。この戦略をとったときの消費金額は、自動販売機から出たフィギュアがフィギュア 1 なら 4 + 6 = 10, フィギュア 2 なら 4 + 5 = 9 です。したがって、この戦略での消費金額の期待値は 1/2 × 10 + 1/2 × 9 = 19/2 となります。どのような戦略をとっても、この期待値が 19/2 より小さくなることはありません。
入力例 2
3 10 5 6 7
出力例 2
18.0
自動販売機の価格設定が高いため、すべてのフィギュアを 1 階で買うのが最適です。
入力例 3
3 1 5 6 7
出力例 3
5.5
自動販売機の価格設定が低いため、すべてのフィギュアが出るまで自動販売機からフィギュアを買い続けるのが最適です。
入力例 4
10 2 3 3 3 3 5 5 5 7 7 10
出力例 4
36.830952380952381