Codeforces Round #263
はい。
http://codeforces.com/contest/462
A. Appleman and Easy Task
ざっくりと大意
・n*nのボードにoとxが並んでいる。
・各マスの四方の隣接マスのoの個数が偶数個ならYES。
方針のようなもの
・端は範囲外を見てエラーにならないように丁寧に数える。
n=int(raw_input()) l=[] for i in range(n): l.append(raw_input()) for i in range(n): for j in range(n): chk=0 if i+1<n: if l[i+1][j]=='o': chk+=1 if i-1>-1: if l[i-1][j]=='o': chk+=1 if j+1<n: if l[i][j+1]=='o': chk+=1 if j-1>-1: if l[i][j-1]=='o': chk+=1 if chk%2: print 'NO' exit() print 'YES'
B. Appleman and Card Game
ざっくりと大意
・Applemanの持っているn枚のカードからToastmanはk枚のカードを選ぶ。
・選んだものと同じ文字数分のコインを得るのでそのコイン数を最大化する。
・e.g. 文字列:ABABA でAを2個選んだら、2点*2で4点のような感じ。。
方針のようなもの
・同じ文字数の多いものから使う。
n,k=map(int,raw_input().split()) w=raw_input() l=[0]*26 for i in w: l[ord(i)-65]+=1 ans=0 chk=k while 1: ma=max(l) if chk>=ma: chk-=ma ans+=(ma**2) l[l.index(ma)]=0 elif chk<ma: ans+=chk**2 chk=0 if chk==0 or sum(l)==0: break print ans
同じ文字数の数え方は多分countより先頭から舐めてordとか使うほうがいいと思う。countは遅いのであまり使わない習慣にしておいた方が後々は良いはず。。