Codeforces Round #385 (Div.2) 参加記

はい。 ox--- (0/0) 1242(+25)
http://codeforces.com/contest/745
問題文の意味がわかってなくてもプレ通った時はロックして他の人の解答を複数見て誤読してる人のHack狙いに行く立ち回り方もあったかもしれないな、と思った。

A. Hongcow Learns the Cyclic Shift

ざっくりと大意

・末尾の文字を先頭へ移動を繰り返して何種類の文字列が得られるか。

Pypy3

n=input()
ans={n}
for i in range(52):
    n=n[-1]+n[:-1]
    ans.add(n)
print(len(ans))

入力で与えられる文字列長の最大が50なので念のため多めにループ回して作成した文字列をset型に入れてset型の要素数を解にした。

B. Hongcow Solves A Puzzle

ざっくりと大意

・n * mの並びの中でXが空洞のない矩形になっているか。

Pypy3

n,k=[int(i) for i in input().split()]
ans=chk=0


for i in range(n):
    s=input()
    if chk==0 and 'X' in s:
        j=s.rstrip('.').lstrip('.')
        if '.' in j:
            print('NO')
            exit()
        else:
            tmp=s
            chk=1
    elif chk==1:
        if 'X' in s and s!=tmp:
            print('NO')
            exit()
        elif 'X' not in s:
            chk==2
    elif chk==2 and 'X' in s:
        print('NO')
        exit()
print('YES')

B問題は誤読しててWAだったのを書き直してAC。もう少し慎重に問題文読むべきだった。判定は'X'の初回出現の行を探して、行頭行末の'.'を削除して'.'が残ってたら即NO。次の行以降は出現が終るか、初回と同じ文字列かをチェック。出現途切れた以降に'X'を含む行があったら即NO。完走したらYESという感じに。

C. Hongcow Builds A Nation

ざっくりと大意

・頂点はn個で辺はm本。同じグループにしてはダメな頂点?k個。
・k個の頂点が別々のグループになるようにしていくつの辺が作れるか? ・提出に至らず。

D. Hongcow's Game

ざっくりと大意

・たまにしか出ないリアクティブ問題。