Codeforces Round #84 (Div 1 only)
久しぶりに出たら非常に残念な感じの順位に。
result
220位 494 / 688 / - / - / -
1829 -> 1833
A. Lucky Sum of Digits
問題
Lucky Numberは各桁が4または7であるような数である。
各桁の和がnであるような最小のLucky Numberを求めよ。
存在しない場合は-1を出力せよ。
B. Lucky Probability
問題
整数pl,pr,vl,vrが与えられる。
petyaは区間[pl,pr]から整数pを等しい確率で一つ選ぶ。
vashaは区間[vl,vr]から整数vを等しい確率で一つ選ぶ。
区間[min(v,p),max(v,p)]がlucky numberをちょうどk個含んでいる確率を求めよ。
試行錯誤
lucky numberをあらかじめ全て生成しておいて、
- pがちょうどlucky numberの場合
- pがlucky numberとlucky numberの間の場合
にわけてそれぞれ区間がk個lucky numberを含む確率を求める。
k=1の場合は別に計算する必要がある。
なんかコードが冗長になって色々ハマってしまう。
提出出来たのは1:20くらい経過してからorz
C. Lucky Tree
問題
エッジに重みのついた木が与えられる。
次の条件を満たす頂点の三つ組(i,j,k)の個数を求めよ。
- iからjへ、lucky numberの重みのあるエッジを通る道がある
- iからkへ、lucky numberの重みのあるエッジを通る道がある
試行錯誤
dp...かなあ。
各頂点からlucky numberのエッジを使って行く頂点の数が求められれば良い。
ただ、木は根なし木なので方向どう考えるか。。。
子側と親側に二回dfsしてやればいいんだろうか、などとしているうちに時間終了
System Test
通った。