49位 300点
Splatoonネタの問題回
C問題までは比較的簡単に解けたが、D問題が難しくて部分点も取れず
公式の解説
www.slideshare.net
A: 床塗り - AtCoder Regular Contest 040 | AtCoder
最大100x100の盤面が与えられるので'R'と'B'どっちが多いかによって、勝ったプレイヤーの名前を答える
数えて比較するだけ
# -*- coding: utf-8 -*- import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys def s(): return raw_input().strip() def n(): return int(raw_input()) a = n() r = 0 b = 0 for i in xrange(a): for c in s(): if c == 'R': r += 1 elif c == 'B': b += 1 if r > b: print 'TAKAHASHI' elif r < b: print 'AOKI' else: print 'DRAW'
B: 直線塗り - AtCoder Regular Contest 040 | AtCoder
マスが直線上に並んでいる
あるマスが塗られているかどうかの情報が与えられる
左端のマスから出発して右に移動しながらマスを塗っていく
現在のマスを含んで右に\(R\)個のマスを一度に塗ることができる時の移動回数と塗った回数の和の最小値を求める
最後に塗る必要がある場所までの移動距離と最低限必要な塗る回数の和を求めればよい
# -*- coding: utf-8 -*- import math,string,itertools,fractions,heapq,collections,re,array,bisect def s(): return raw_input().strip() def ln(): return map(int, raw_input().strip().split()) N, R = ln() S = list(s()) L = len(S) idx = 0 count = 0 for i in xrange(L - 1, -1, -1): if S[i] == '.': count += 1 if idx < i - R + 1: idx = i - R + 1 for j in xrange(i, i - R, -1): S[j] = 'o' print count + idx
C: Z塗り - AtCoder Regular Contest 040 | AtCoder
縦横\(N\)マスの盤面とそれぞれのマスが塗られているかどうかの情報が与えられる(\(1 \le N \le 100\))
ある位置を指定すると指定した位置のマスとそれより左側のマス、指定した位置より一つ下のマスとそれより右側のマスが塗られる
すべてのマスを塗るのに必要な最小回数を答える
上の行から順に塗り残しがないように貪欲に塗っていけばよい
# -*- coding: utf-8 -*- import math,string,itertools,fractions,heapq,collections,re,array,bisect def fs(): return [raw_input().strip() for i in xrange(input())] S = fs() L = len(S) for i in xrange(L): S[i] = list(S[i][::-1]) result = 0 for i in xrange(L): for j in xrange(L): if S[i][j] == '.': result += 1 for k in xrange(j, L): S[i][k] = 'o' if i + 1 < L: for k in xrange(j + 1): S[i + 1][k] = 'o' print result
D: カクカク塗り - AtCoder Regular Contest 040 | AtCoder
縦横\(N\)マスの盤面と障害物があるかどうかの情報が与えられる
スタート地点が与えられるので、1マス進むごとに必ず移動方向を左右どちらか90度回転しないといけないという条件で進んだとき、同じマスを2回通らずにすべてのマスに到達できるか答える
まったくわからず
解いた人のツイート
Dは終点と最初と最後の向きが決まれば縦も横も貪欲につないでよくて、最初の向きを決めると終点は偶奇の関係から高々n通りになるので全部試した。
— かわてぃー (@kawatea03) 2015, 6月 13