れとろのメモ置場

とあるSEのメモ置場

SOMPO HDプログラミングコンテスト(ABC192)のメモ

SOMPO HDプログラミングコンテスト(ABC192)に参加しました。

結果

A,B,Cの3問正解でパフォーマンスが612。相変わらず茶色くらいのパフォーマンス。やっぱり安定してD問題くらいまでは解けないと緑や水色にはなれないなあ。

E問題が前回同様グラフの問題だったから解きたかったなあ。D問題はどれくらい調べればいいのかわからなかった。

A問題

100 - (入力 \% 100)を出力するだけ。標準の入出力+剰余計算を知っているか・できるかどうかって言う問題。

B問題

問題文通りに実装。文字が大文字かどうかを判断する方法をどう実装するのかという問題。 C++ならisupperやislowerというステキな関数があるのでそれを使えば楽。それ以外ならcharの値が'A'~'Z'、'a'~'z'のどっちに含まれるかで判断かなあ。

C問題

3種類の関数を実装して、初項から順番に計算していく。 入力を文字列として受け取って、ソートして、数字に変換して計算するって処理を繰り返す。 文字列を受け取ってソートして数字に変換して返すって部分を関数化すればコードはスッキリする。

D問題

X桁の数字をN進数から10進数に変換する処理はできたけど、入力のXが桁数多すぎると10進数に変換してもオーバーフローするしなあとか、何進数まで調べればいいのかわからないなあってなってギブアップ。 解説読むと二分探索使うってあったけど、コンテスト中は完全に頭から抜けてたなあ。二分探索はこんなときに使うのか。

E問題

前回のABC191でのE問題同様グラフでしかもダイクストラ法の問題。 コスト計算するときにK_iの倍数+T_iになるようにすればいいんでしょと思って、ダイクストラ方のコスト計算部分をちょっとごにょごにょして実装したけど半分くらいTLEとWAになって悲しくなった。