AtCoder ABC173
AtCoder ABC173解いた分だけまとめ。
AB早解きしてレート冷えるのは回避。Cがbit全探索だったものの、気づけず残念...
目次
解説AC
A. Payment
やるだけ、とはいえ1000円札でちょうど払える場合と、
お釣りが来る場合で場合分けが必要。
ACしたコード
# coding:utf-8 n = int(input()) if n % 1000 == 0: print(0) else: print(1000 - (n % 1000))
B. Judge Status Summary
count
メソッドで集計して、結果を表示するだけ
ACしたコード
# coding:utf-8 n = int(input()) s = [input() for _ in range(n)] # print(s) print('AC x ' + str(s.count('AC'))) print('WA x ' + str(s.count('WA'))) print('TLE x ' + str(s.count('TLE'))) print('RE x ' + str(s.count('RE')))
C. H and V
2重ループでBit全探索。行と列の選択パターンを全列挙し、
各行・列について赤に塗られないところをフラグありとして考える。
赤に塗られているところはこれ以上探索しても仕方ないのでcontinueする。
ちょっと気づけなかった...
解説ACしたコード
# coding:utf-8 h, w, k = map(int, input().split()) c = [list(input()) for _ in range(h)] # print(c) black = 0 ans = 0 for bit_h in range(2**h): for bit_w in range(2**w): black = 0 for i in range(h): if not ((bit_h >> i) & 1): continue for j in range(w): if not ((bit_w >> j) & 1): continue if c[i][j] == '#': black += 1 if black == k: ans += 1 print(ans)
D問題はまた後日かな...