日々drdrする人のメモ

今日も明日もdrdr

競プロライブラリのページをAsciiDocで作った話

この記事は、"IQ1 Advent Calendar 2018"の13日目の記事です。
adventar.org

今回は、自分用の競プロライブラリのWebページを最近AsciiDocで作ったので、この話を書きます。競プロよりもAsciiDocメインの記事です。
tjkendev.github.io

続きを読む

CodeChef August Challenge 2018: Safe Partition

CodeChef August Challenge 2018の問題: Safe Partition (Code: SAFPAR)
問題ページ: https://www.codechef.com/AUG18A/problems/SAFPAR

問題概要

 {N}個の要素を含む数列 {A}がある。

この数列を、各要素がいずれか1つの列に属するように、連続したいくつかの部分列 {S_1, S_2, ..., S_K}に分割する。
この時、全ての部分列について {\min(S_i) \le |S_i| \le \max(S_i)}を満たすようにしたい。

このような分割の仕方はいくつあるか?MOD  {10^9 + 7}で求めなさい。

続きを読む

CodeChef August Challenge 2018: Chef at the River

Code Chef August Challenge 2018の問題: Chef at the River (Code: RIVER)
問題ページ: https://www.codechef.com/AUG18A/problems/RIVER/

問題概要

Chefと {N}の動物が川の左岸におり、ボートを使って何回か往復することで全員右岸に渡りたい。
ボートは必ずChefが同行しなければならない。

 {N}匹の動物の中には、相性が悪いペアがおり、Chefと一緒にいない時に彼らが一緒にいてはいけない。
この悪いペアの関係は {N}頂点のグラフで表現され、 {u} {v}が辺で繋がっている時、 {u},  {v}は相性が悪いことを表す。

最初は頂点1のみの根付き木になっており、 {2, 3, ..., N}の頂点がこの根付き木に繋がっていく。
2の頂点が繋がった時から、 {N}の頂点が繋がった時までの各 {N-1}の状態について、制約を満たしながらChefと動物全員を対岸に渡すために必要な最小のボートの容量を求めよ。

続きを読む

CodeChef July Challenge 2018: Subway Ride

CodeChef July Challenge 2018の問題: Subway Ride (Code: SUBWAY)
問題ページ: https://www.codechef.com/JULY18A/problems/SUBWAY

問題概要

頂点 {N}、辺 {M}の無向グラフが与えられる。
このグラフは自己ループと単純閉路が存在せず、多重辺を持つ。(つまり、同じ頂点同士を繋ぐ多重辺を全て1つの辺に置き換えると木になる)
そして、各辺には色が塗られている。

 {i}番目の辺は頂点 {u_i}と頂点 {v_i}を繋ぎ、 {w_i}の色で塗られている。


このグラフの2点間の単純パスを考え、この時通る辺の色を通った順に並べ、コストを計算する。
このコストは、単純パスで通った辺の内、隣接している辺の色が異なる数、で計算する。

今回、 {Q}クエリが与えられる。
各クエリで頂点 {u}と頂点 {v}が与えられるので、その2点間の単純パスで考えられる最大コストを計算せよ。

続きを読む