SlideShare a Scribd company logo
C: デジタル時計
Digital Clock
 原案:井上
問題文:竹内
 解答:竹内・井上
問題概要
• 年月日時分秒を表示するデジタル時計がある
• 年月日時分秒として有効な表示のうち、光る棒
の数がちょうど k 本になる表示は何通りか?
• ただし時計は壊れていていくつかの棒は常に光
らない
想定 TLE 解法
• 1秒ごとに時計を進めて有効な表示をシミュ
レーション
• 有効な表示の各桁について、数字ごとに光る
場所が壊れていなければ本数にカウント
• 光る本数がちょうど k なら答えにカウント
• 有効な表示は約 10000×365×24×60×60

≒ 3×1011
通りある → 全部試すと TLE
想定解法
• 年月日は、閏年や月ごとに有効となる日付が異なるのでシミュレー
ションした方がよい
• 一方、時分秒は年月日がいつであるかに関わらず常に可能な表示
は同じ

→ 年月日と時分秒を分けて考える
• 年月日だけでx本光ってるなら、時分秒はk-x本光っていればよい
←27本
←28本
独立
想定解法
• 別々にシミュレーションして以下を求める
• 年月日で光る本数が0~kになる表示数 ymd[0:k]
• 時分秒で光る本数が0~kになる表示数 hms[0:k]
• Σ ymd[i] × hms[k-i] が答え
• 32bit 整数だと最悪時オーバーフローなので注意
• だいたい 10000×365 + 24×60×60 回のシミュレーション

→ 間に合う
writer解
• 井上 87行 (C++)
• 竹内 107行 (C++)
提出状況
• First Acceptance
• on-site: iidx (00:57)
• on-line: anta (00:26)
• 正答率 15/22 (68.2%)

More Related Content

More from HCPC: 北海道大学競技プログラミングサークル (20)

PDF
ACPC 2017 Day3 F: 掛け算は楽しい
PDF
ACPC 2019 Day3 F: 部分文字列分解
PDF
ACPC 2019 Day3 E: 総和の切り取り
PDF
HUPC 2019 Day1 F: グリッドの番号
PDF
HUPC 2019 Day1 E: 最短経路の復元
PDF
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 E: 総和の切り取り
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 E: 最短経路の復元
Ad

C editorial