0
0

More than 3 years have passed since last update.

A - Favorite Sound, B - Bitter Alchemy, A - Simple Math 2

Posted at

2021年2月9日のくじかつ
精進内容!

A - Favorite Sound

O(1)

python
A, B ,C = list(map(int, input().split()))
res = min(B // A, C)
print(res)

B - Bitter Alchemy

O(N)
貪欲法、まず最初にN種類のドーナツを作成できるか。
その後、最も少ない材料で作成できるドーナツを可能な数だけ作成する。

N, X  = list(map(int, input().split()))

m = [0] * N
min_m = 1001
res = 0

for i in range(0, N):
    m[i] = int(input())
    min_m = min(min_m, m[i])

    if X - m[i] >= 0:
        X = X - m[i]
        res += 1

res += X // min_m
print(res)

上記でACが出ました。
これテストケースのミスっぽいですね。
一度ドーナツを昇順に並び替えてから何種類だけ作成できるか判定を行うのが正しいかと思います。

python
N, X  = list(map(int, input().split()))

m = [0] * N
min_m = 1001
res = 0

for i in range(0, N):
    m[i] = int(input())
    min_m = min(min_m, m[i])

m.sort()

for i in range(0, N):    
    if X - m[i] >= 0:
        X = X - m[i]
        res += 1

res += X // min_m
print(res)

A - Simple Math 2

これはARC111で話題になった300点の中で最高難易度の問題の一つですね。
復習してました。
記憶を頼りに、・・・

O(1)
10^NをM進数とした時、2桁目の数字を出力せよ。

python
N, M  = list(map(int, input().split()))

NN = pow(10, N, M * M)
res = NN // M
res = res % M
print(res)

感想

去年より確実にできるようになってますね。
しかし、茶色問題が全く分かりませんでした。

0
0
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
0