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

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

Codeforces Round #185 (Div. 2)

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

A. Whose sentence is it?

ざっくりと大意

・Fredaはいつも最後に"lala."という。Rainbowはいつも最初に"miao."という。
・どちらかだけの条件を満たしてればその名前を、どちらも満たしてないか同時に両方満たしていて判別できない時はOMG>.< I don't know!を出力する。

方針のようなもの

正規表現とか使う。

import re
l=["Rainbow's","Freda's","OMG>.< I don't know!"]
n=int(raw_input())
r=re.compile(r"^miao\.")
f=re.compile(r"lala\.$")
while n:
    n-=1
    w=raw_input()
    if re.search(r,w)==None and re.search(f,w)==None:
        print l[2]
    elif re.search(r,w)!=None and re.search(f,w)!=None:
        print l[2]
    elif re.search(r,w)!=None:
        print l[0]
    else:
        print l[1]

正規表現とか使えるなら使ったほうが楽なので使うべきだと思う。

B. Archer

ざっくりと大意

・先攻はa/bで、後攻はc/dで射的で先攻の勝つ確率??

方針のようなもの

・そうだ、チュートリアル読もう。

a,b,c,d=map(int,raw_input().split())
ans=chk=0
p=1.0*a/b
q=(1.0-1.0*c/d)*(1.0-1.0*a/b)
print p/(1.0-q)

確率を計算で処理とか考えて分かるとか現役の学生とかでないと無理ゲーだったのでチュートリアルを見た。こんな問題の時にこういう式で計算した程度に覚えておけばいつか役立つかもしれない。