Codeforces Round #125 (Div.2)
はい。
http://codeforces.com/contest/199
A. Hexadecimal's theorem
brute force,constructive algorithms,implementation,number theory
ざっくりと大意
・整数nが与えられるのでフィボナッチ数に含まれているいずれかの数を3つ使って和がnになるようなa,b,cを出力
方針のようなもの
・nの最大が109なら全部調べられるような
import itertools #10**9+7 mod=1000000007 #start = time.clock() n=int(raw_input()) def fib(n): a,b=0,1 l=[0] while 1: l.append(a) if a>n: break a,b=b,a+b return l chk=fib(n) if n in chk: print 0,0,n exit() else: chk.pop(0) np=list(itertools.combinations(chk,3)) for i in np: if sum(i)==n: print i[0],i[1],i[2] exit() print "I'm too stupid to solve this problem"
これも2年前にリアルタイムで参加していた回の問題。AC出ていないまま放置していたのを割とあっさりと通したので成長してるんだかしてないんだか。。。
出力結果は3つの数がいずれもフィボナッチ数で和がnになれば条件を満たすのdフィボナッチ数のリストを作った中にnがあれば0,0,nで条件を満たして終了。昇順降順すら問われないです。
C. About Bacteria
ざっくりと大意
・バクテリア退治をする、試験管の中にバクテリアがいる
・それぞれのバクテリアは毎秒kに分裂増殖する
・いくつかの異常なバクテリアbも発生する
・n秒後にはzバクテリアが存在することになる
・tバクテリアから開始してz以上になるのは何秒後か??
方針のようなもの
・各数字が最大で106までなら素直に計算して大丈夫か期待したけどそんなわけなかった