AtCoder Beginner Contest 196 / Python


f:id:penyooo:20200112235130p:plain


  • 独学者です。( 2019 / 9 ~ )
  • AtCoder の問題に Python で取り組んでいます。
  • ABC で4問目(茶か緑)まで解けることを目標にしています。

完全に独学なのでコードは酷いと思います。

AtCoder やってる方、お気軽にコメントください。





結果



f:id:penyooo:20210320225949p:plain

イマイチ!

イマイチ!!!





問題と解答と勉強


atcoder.jp



提出したコード
_, b, c, _ = map(int,open(0).read().split())

print(b - c)









atcoder.jp



提出したコード
from decimal import Decimal, ROUND_FLOOR

print(Decimal(input()).quantize(Decimal('0'), rounding=ROUND_FLOOR))



よくわからんけど、こういうときはデシマル君。

そういうことが言いたい問題じゃない気もする。







atcoder.jp



提出したコード
N = input()
L = len(N)//2

if len(N)%2 != 0:
    print(10**L-1)
else:
    if int(N[:L]) <= int(N[L:]):
        print(int(N[:L]))
    else:
        print(int(N[:L])-1)



これを結構悩んじゃったよねぇ。

そして間違い数を稼いじゃったよねぇ。

さらに時間も使わされちゃったよねぇ。







atcoder.jp



3番に時間掛け過ぎてあんまり考えられなかった。

ってのもあるけど、これねぇ・・・。

取っ掛かりが何処だかわからんかった。



正解
H,W,A,B=map(int,input().split())
m=H*W
dp=[[0]*(A+1) for _ in range(2**m)]
dp[0][0]=1
for i in range(m):
  for j in range(2**i):
    for k in range(A+1):
      dp[2**i+j][k]+=dp[j][k]
      if i%H!=0 and (j>>(i-1))%2==1 and k>0:
        dp[2**i+j][k]+=dp[j-2**(i-1)][k-1]
      if i>=H and (j>>(i-H))%2==1 and k>0:
        dp[2**i+j][k]+=dp[j-2**(i-H)][k-1]
        
print(dp[-1][-1])



DP なん?

これ DP なんかぁ。

ほぉ、なるほどねぇ・・・。

ぬーーーーん。



atcoder.jp



さっぱりマン。

atcoder.jp



サッパリパリパリ