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

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Round #327 (Div.2)

はい。
http://codeforces.com/contest/591

A. Wizards' Duel

ざっくりと大意

・lをp:qで分けたうちのpの方を出力するっぽい??

方針のようなもの

・その通りに計算する。

python

l=int(raw_input())
p=int(raw_input())
q=int(raw_input())
print l*(p*1.0/(p+q))

問題文をハリーポッターまでしか読まずにサンプルの入出力でエスパーした。計算は適当で大丈夫っぽい。

B. Rebranding

ざっくりと大意

・長さnの文字列に対して、クエリがm回与えられて\(x_i\)と\(y_i\)を置換する。無いのは無視する??

方針のようなもの

・毎回置換するとTLEになるので置換の内容を保存して最後に処理する。

python

n,m=map(int,raw_input().split())
w=raw_input()
l={}
T=range(26)
for i in T:
    l[chr(i+97)]=chr(i+97)
for i in range(m):
    x,y=map(str,raw_input().split())
    for i in l:
        if l[i]==x:
            l[i]=y
        elif l[i]==y:
            l[i]=x
ans=''
for i in w:
    ans+=l[i]
print ans

問題文読まずにサンプルの入出力で内容を判断しました。クエリごとにa-zを格納している連想配列の値が\(x_i\),\(y_i\)であるものを置換する。初回はキーと値が一致しているが置換が進むと一致しなくなる。クエリ処理はひたすら値を入れ替える。値を入れ替えるのがクエリの置換の内容を保存と同等である。