ABC226、コンテスト8回目の挑戦です!
C問題が手も足も出ませんでした。。。解説を見ても何を言ってるのかまったくわからず、アルゴリズムの勉強が必要だと感じました。武器が足りない。
AtCoder Problemsを見ると、Difficulty=539となってて、今までのC問題が、300-400くらいだったのを考えると、やはり体感通り難しかった模様。(めちゃくちゃ難しいというレベルではないようだが) レートも、ABしか解いてないけど、20くらい上がってた。
X=input()
from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN
print(Decimal(str(X)).quantize(Decimal('0'), rounding=ROUND_HALF_UP))
最初round()関数でやってたら、なぜかWA。
pythonのround()関数は、銀行丸めという方法なので、エラーが出た模様。
N=int(input())
L_list=[]
#文字列として、それぞれを格納する。
for i in range(N):
a=input().strip()
L_list.append(a)
# print(L_list)
#L_listの中に、何種類のユニークなリストがあるか。
print(len(set(L_list)))
数列をL_listにリストで格納して、set()でユニークな要素の数を出力。この辺は、これまでに類題解いてるのでパッと解けるようにはなった。
問題のC問題については、全く方針が浮かばず、途中であきらめた。
サンプルケース自体は、後ろから必要な技の時間を足していけば、答えは出るのだが、サンプルケース以外のケース、
例えば、技4つの場合で、
4
1 0
1 1 1
1 1 2
1 1 3
などの場合に、
4つ目の技の時間+3つ目の技の時間に加えて、
3つ目の習得に必要な技
→上記だと技2
さらに、技2には、技1 が必要、、、
と考えていくと、連鎖的に、同じような処理を何回もしないといけなくて、どうやって実現できるのかがわからなかった。
完全に敗北しました。わかりやすい解説を探して勉強します。。。
お疲れさまでした。