はじめに
今回は体調不良だったため、ユニークビジョンプログラミングコンテスト2025 夏 (AtCoder Beginner Contest 411)には参加しませんでした。
その代わりとして、翌日(つまり今日)、A問題とB問題を解いてみました。
C問題以降は解きませんでした。恐らく(C問題は)TLE(実行時間制限超過)でダメだろうなー、と。
C問題(以降)が解けないかもしれないと判断したので、バーチャル参加はしていません。
A - Required Length
文字列の長さを出力する関数があれば楽に解ける問題です。
まあ典型的A問題ということで。
$L$文字『以上』というのはミスしやすい注意点かもしれません。
def main() -> None:
p = input()
l = int(input())
if len(p) >= l:
print("Yes")
else:
print("No")
if __name__ == "__main__":
main()
B - Distance Table
階差が与えられるので、その累積和を求める、でいいんでしょうか?
$N$は駅の数、$D_i$は駅間の距離が与えられる、という点には気をつけねばなりません。
つまりミスすると配列の範囲を越えてしまう、と。
def main() -> None:
n = int(input())
d = list(map(int, input().split()))
for i in range(n - 1):
r:list = list()
rc = 0
for j in range(i, n - 1):
rc += d[j]
r.append(rc)
print(*r)
if __name__ == "__main__":
main()
C問題以降
C問題は問題文を見てみましたが、どうにも普通にやったらTLEを起こしそうな気配がしたので、今の実力では解けないと判断しました。
ということで解説を見ることに。
……いかん、ざっと見たところ理解不能。コードも合わせて、もう少し読み解きます。
なお、愚直にやるとTLEが確定することだけは当たっていました。
D問題以降も現状では理解不能。数理素養が足りない私には厳しいようです。
今後の課題
- アルゴ式で数理素養を身につける(現在は基礎数理が29%完了)
- 思考の柔軟性を高めるための手段を探す
- アルゴ数学本の読み直し、及び鉄則本を読み進める
- 体調を整える
AtCoderの過去問解きはアルゴ式の数理素養を一通り完了してから考えます。
数理素養が出来れば、あとは並行して行っても良いよね、と。
終わりに
コンテストは最低でも2週間に1回はRated参加しようと考えています。
ここまで読んで頂き、誠にありがとうございました。