AtCoder Beginner Contest 044 参加記

はい。 ooxx 1038(+116)
http://abc044.contest.atcoder.jp
前回より難易度上がった気がする。Cは一応部分点取った。全完も少なかったし仕方ない。

A - 高橋君とホテルイージ

python

n=int(raw_input())
k=int(raw_input())
x=int(raw_input())
y=int(raw_input())
print x*(min(k,n))+y*(max(n-k,0))

N泊するのをK泊超えるかどうかで計算の仕方が少し変わる。

B - 美しい文字列

python

w=raw_input()
l=[0]*26
for i in w:
    l[ord(i)-97]+=1
for i in l:
    if i%2:
        print 'No'
        exit()
print 'Yes'

文字の出現回数を記録して、後で奇数回のものがあるかを確認した。

C - 高橋君とカード

python

n,a=map(int,raw_input().split())
x=map(int,raw_input().split())
ans=0
for i in range(1<<n):
    chk=0
    t=bin(i)[2:]
    t='0'*(n-len(t))+t
    for j,p in enumerate(t):
        if p=='1':
            chk+=x[j]
    if chk!=0 and chk==a*t.count('1'):
        ans+=1
print ans

部分点しか取れなかった。部分点制限が1<=N<=16なのでbinで0,1で選ぶ、選ばないを全部調べるのがこの方法だろうと思った。部分点でも取れるなら取っておこうということでコレで提出した。

D問題は問題読んで面倒そうだったし部分点もなかったので諦めた。