くろたんく雑記帳

日常とか、わんちゃんとか、機械学習とか、競プロとか、

MENU

AtCoder Beginner Contest 174 参加ログ・感想

久しぶりのAtCoder Beginner Contetだったが、全然だめ。TLEとうまく頭の中で条件分岐できず、C, Dを解けず終了。


内容

  • Python3でやっている。
  • 参加ログ。
  • 所感。
  • コンテスト中に何を考えたか。
  • コンテスト後に解説をみたり、少し整理したりしたくらいの内容。
  • 問題の詳細で細かく書こうと思うものは別記事とする。
  • E以上はとりあえず現状自力では無理なのでDまで。解けるようになってきたら更新するかも

結果

Aはささっと終わらし、Bで途中経過printしててペナってB完したのが5分くらい。ミスった。Cは巨大な7の連続する数値つくると明らかに計算が遅いがどう解決していいかわからず。Dの戦略を考えたが、条件分岐うまくできず。久しぶりだったのに、AB完しかできず意気消沈。


どう考えたか + α

A - Air Conditioner

問題タイプ:条件分岐 {\displaystyle x}を30以上でif文で分岐。

x = int(input())
if x >= 30:
    print('Yes')
else:
    print('No')

B - Distance

問題タイプ:条件分岐(カウント) 単純に距離を計算して、d以下ならカウント。

from math import sqrt

n, d = map(int, input().split())
xy = [list(map(int, input().split())) for _ in range(n)]
cnt = 0
for x, y in xy:
    xy_d = sqrt(x**2 + y**2)
    if xy_d <= d:
            cnt +=1
print(cnt)

C - Repsept

問題タイプ:mod, 等比数列の和 (ということに終わって気づいた)
{\displaystyle x}が7, 77, 777, ...と7が連続する数値で一番はじめに割り切れる7の連続数を知りたい。最大で7が{\displaystyle 10^6}個連続する数値まで考える必要があり、単純に行うとTLEになるので、modと等比数列の和をうまく使って求める必要がある。これは別記事にする。

追記:

blacktanktop.hatenablog.com


D - Alter Altar

問題タイプ:条件分岐だと思う
{\displaystyle W}{\displaystyle R}の石があり、全部{\displaystyle W}とするか{\displaystyle R}を全部左が話に寄せるかするんだけど、条件分岐をうまくやる必要がある。これは別記事にする。

追記:

blacktanktop.hatenablog.com


おわりに

当面の目標は、ABC完答できればDまでということだが、CもDも中途半端に解けず。 日々精進をしているがまだ発想が追いつかないのと時間の制約に焦るとうまくできないことばかりだ。もっと時間を区切って問題を解こう。