0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AtCoderBeginnerContest180復習&まとめ

Last updated at Posted at 2020-10-25

AtCoder ABC180

2020-10-17(土)に行われたAtCoderBeginnerContest180の問題をA問題から順に考察も踏まえてまとめたものとなります.
問題は引用して記載していますが,詳しくはコンテストページの方で確認してください.
コンテストページはこちら
公式解説PDF

A問題 box

問題文
$N$個のボールが入っていた箱から$A$個のボールを取り出し、新たに$B$個のボールを入れました。今、箱にはボールが何個入っていますか?

abc180a.py
n, a, b = map(int, input().split())
print(n - a + b)

B問題 Various distances

問題文
$N$次元空間内の点$(x_1,…,x_N)$が与えられます。
原点からこの点までの、マンハッタン距離、ユークリッド距離、チェビシェフ距離をそれぞれ求めてください。 ただし、それぞれの距離は次のように計算されます。
 ・マンハッタン距離:$|x_1|+…+|x_N|$
 ・ユークリッド距離:$\sqrt{|x_1|^2+…+|x_N|^2}$
チェビシェフ距離:$max(|x_1|,…,|x_N|)$

abc180b.py
n = int(input())
x_list = list(map(int, input().split()))
a = 0
b = 0
c = 0
for x in x_list:
    if x < 0:
        x *= -1
    a += x
    b += x * x
    if c < x:
        c = x
print(a)
print(b**(0.5))
print(c)

C問題 Cream puff

問題文
$N$個のシュークリームがあります。
シュークリームを分割することなく平等に分けることができるような人数としてあり得るものを全て求めてください。

abc180c.py
def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n//i)
    divisors.sort()
    return divisors
n = int(input())
for x in make_divisors(n):
    print(x)

D問題 Takahashi Unevolved

問題文
いろはちゃんはペットを育てるゲームにはまっています。
いろはちゃんはペットとして高橋君を飼っており、はじめ高橋君の強さは$X$、経験値は$0$です。 これらの値は次の$2$種類の特訓によって増加します。
 ・カコモンジムに通う:強さが$A$倍になり、経験値は$1$増える。
 ・AtCoderジムに通う:強さが$B$増え、経験値は$1$増える。
高橋君は強さが$Y$以上になると進化しますが、進化しない方がかわいいといろはちゃんは思っています。
そこで、強さが$Y$以上にならないように高橋君に特訓を課すとき、経験値の最大値を求めてください。

コンテスト中は,繰り返し処理を使わないように,何回カコモンジムに通えるかを,logとか使って計算していました.
(n = int(math.log(b / a / x, a)) + 1みたいな感じ)
解説に書いてあった,何回カコモンジムに通えるかは制約的に$64$回以下,を見てなるほどなと思いました.
コードは解説に載っていたものです.

abc180d.py
x,y,a,b=map(int,input().split())
ans=0
while a*x<=x+b and a*x<y:
  x*=a
  ans+=1
print(ans+(y-1-x)//b)

ここ最近,D問題までは解けても,そこまでのどこかしらの問題で時間使い過ぎて,E問題解ききれていないので,もう少し柔軟に問題が解けるようになりたいと思います.

最後まで読んでいただきありがとうございました.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?