2012-06-08から1日間の記事一覧

SRM545 Div2 Hard(1000) SpacetskE

SpacetskE(x,0)を出発して、最後に(tx,ty)で信号を発するとすると、途中で通る格子点は出発点を含めて、gcd(tx-x,ty)個。その中から、K-1点を選ぶ。これを、出発点と最後に信号を発する点の各組合わせに対して、足し合わせる。 #include <algorithm> using namespace st</algorithm>…

SRM545 Div2 Easy(250) ANDEquation

ANDEquation #include <vector> using namespace std; class ANDEquation{public: int restoreY( vector <int> A ) { int N = (int)A.size()-1; for ( int i=0; i</int></vector>

SRM545 Div1 Medium(500) Spacetsk

SpacetskK=1ならば、格子点の個数なので、(L+1)(H+1)。垂直に発射する場合は、C(a,b)をa個の中からb個取る場合の数として、(L+1)C(H+1,K)。斜めに発射する場合、発射地点から(+dx,+dy)の格子点で最後に信号を発するとすると、途中に通過する格子点の個数は発…

SRM545 Div1 Easy(275), Div2 Medium(550) StrIIRec

StrIIRei文字目までを決めて反転数が最大になるのは、残りの文字が降順の場合。辞書順でminStr以降という条件を満たすように先頭から文字を決めていく。…dcbaは辞書順最後で反転数がn(n-1)/2なので、答えは常に存在する。 #include <string> #include <vector> using namespa</vector></string>…