2012-04-01から1ヶ月間の記事一覧

Google Code Jam 2012 Qualification Round Problem C. Recycled Numbers

Recycled Numbers全てのnとmの組み合わせについて、recycledかどうかを調べていると間に合わない。各mについて、recycledな数を作ってn

Google Code Jam 2012 Qualification Round Problem B. Speaking in Tongues

GCJ

Dancing With the Googlers最高点数をpとすると、合計点数の最小は、最高と最低の差が1以下の場合は3p-2、2以下の場合は3p-4である。ただし、p未満にはならない。合計点数がこの最小以上のGooglerを数える。 for i in range(input()):t=map(int,raw_input().…

Google Code Jam 2012 Qualification Round Problem A. Speaking in Tongues

GCJ

A. Speaking in Tonguesqとzが分からないけど、2通りしかないので両方試せば良い。 for i in range(input()):print "Case #%s: %s"%(i+1,"".join("yhesocvxduiglbkrztnwjpfmaq"[ord(c)-97]if c!=" "else c for c in raw_input())) マッピングを求めるプログ…

Google Code Jam 2012 Qualification Round

CまでSmallとLargeを通して通過。

Google Code Jam 2012 Round 1A Problem B. Kingdom Rush

GCJ

Kingdom Rush手数も星も、最初から星2個を狙った方が得。星を1個だけ取るレベルをいかに減らすかという問題。各回では、星を2個取れるレベルがあるならば、そのレベルに挑戦する。星を1個しか取れないレベルしかないならば、星を2個取るのに必要な星が多いレ…

Google Code Jam 2012 Round 1A Problem A. Password Problem

Password Problemk文字目まで全部正解している確率P[k]は、P[k]=Πi=1kpi。x回バックスペースを押したとき、それ以前の場所が全て正解していればキーストロークは2x+B-A+1回、そうでなければ2x+B-A+1+B+1回。諦めたときはB+2回。 for test in range(input()):…

Google Code Jam 2012 Round 1A

GCJ

AとBをLargeまで解いて、501位で通過。

SRM541 Div2 Easy(250) AkariDaisukiDiv2

AkariDaisukiDiv2 #include <string> using namespace std; class AkariDaisukiDiv2{public: int countTuples( string S ) { int n = (int)S.size(); int c = 0; for ( int i=1; i</string>

SRM541 Div1 Medium(550) AkariDaisukiDiv1

AkariDaisukiDiv13通りの場合に分けて考える。fk(S)が短い間は、そのまま計算すれば良い。fk(S)が長くなったら、文字列の連結によってfk(S)の中央に新たにFが現われることは無くなるので、接頭辞と接尾辞のみを覚えておいて計算する。kが大きくなると、C(k)…

SRM541 Div1 Easy(250), Div2 Medium(500) AntsMeet

AntsMeetxとyの範囲が小さいので、単にシミュレーションすれば良い。ただし、アリがxやyが整数ではない位置で衝突する場合を考慮する必要がある。その場合でも衝突地点の座標は0.5の整数倍なので、あらかじめ座標を2倍にしておくのが簡単。 #include <vector> #inclu</vector>…

SRM541

Easy (250) 0 Medium (550) 214.86 Hard (1000) 0 Challenge 0 結果 214.86点 170位 2108→2118250、アリが整数ではない座標で衝突する場合を考慮していなくて落ちた。Exampleにはその場合のことも書いてあった。ちゃんと読もう(´;ω;`)

SRM540

Easy (250) 177.43 Medium (550) 0 Hard (1050) 0 Challenge 0 結果 177.43点 182位 2022→2034

SRM540 Div2 Easy(250) RandomColoringDiv2

RandomColoringDiv2 #include <algorithm> using namespace std; class RandomColoringDiv2{public: int getCount( int maxR, int maxG, int maxB, int startR, int startG, int startB, int d1, int d2 ) { return (min(startR+d2,maxR-1)-max(startR-d2,0)+1) *(min(s</algorithm>…

SRM540 Div1 Easy(250), Div2 Medium(500) ImportantSequence

ImportantSequence最左の数字を決めれば、全ての数字が定まる。数字1個ずつ処理すると時間が足りないので、それぞれの数字が取り得る範囲で計算する。 #include <string> #include <vector> using namespace std; class ImportantSequence{public: int getCount( vector <int> B, </int></vector></string>…

TCO2012 Round1A Medium(500) EllysFractions

EllysFractions例えば、6!=720は、720=24×32×5と素因数分解できる。これを既約分数の分子と分母に分けるとき、2を分子に8を分母にということはできず、それぞれの素数ごとに分子か分母かを選ぶことになる。それは、24通り。分子が分母より小さい分数はちょう…