読者です 読者をやめる 読者になる 読者になる

Codeforces Round #263 (Div. 2)

はい。 ----- (0/0)
http://codeforces.com/contest/462
問題文が解読できず、サンプルからエスパーも出来なかったので何も提出しなかったです。

A. Appleman and Easy Task

ざっくりと大意

・n*nのマスにoとxが並んでる
・各マスで隣接する(縦横のどちらかの辺が接するマスが隣接するマス)oの数が全て偶数(0を含む)であるか

方針のようなもの

・4方向全部探す ただしリスト範囲外は見に行かないように

e=[(-1,0),(1,0),(0,-1),(0,1)]
#start = time.clock()
n=input()
ans=chk=0
l=[]
for i in range(n):
    l.append(raw_input())
for i in xrange(n):
    for j in xrange(n):
        o=0
        for k in e:
            if 0<=i+k[0]<=(n-1) and 0<=j+k[1]<=(n-1):
                if l[i+k[0]][j+k[1]]=='o':
                    o+=1
        if o%2:
            print 'NO'
            exit()
print 'YES'

他のACの人のも見たけど四方向みてoが奇数ならNOで即時終了、oが0個の場合含む偶数なら探索を最端まで って感じで良いっぽい。

同室ならHack成功できるチャンスだった群
http://codeforces.com/contest/462/submission/7590736
http://codeforces.com/contest/462/submission/7588608 oのcountを各マス判定ごとに初期化してないっぽい なのでNOの判定もおかしくなっているっぽい

B. Appleman and Card Game

ざっくりと大意

・n個並んでいる文字列からk個選ぶ
・それぞれが同じ文字の個数の分だけの点を得る
・e.g. 文字列:ABABA でAを2個選んだら、2点*2で4点のような感じ

方針のようなもの

・多い文字種から使えばそれで解決

n,k=map(int,raw_input().split())
w=list(raw_input())
c=list(set(w))
chk=[]
for i in c:
    chk.append(w.count(i))
chk.sort()
ans=0
while k>0:
    if k>=chk[-1]:
        ans+=chk[-1]**2
        k-=chk[-1]
        chk.pop(-1)
    else:
        ans+=k*k
        k=0
print ans

同室ならHack成功できるチャンスだった群
http://codeforces.com/contest/462/submission/7583320
http://codeforces.com/contest/462/submission/7583212
http://codeforces.com/contest/462/submission/7588877
http://codeforces.com/contest/462/submission/7582231
オーバーフローかな?よくわからん