2010-10-22から1日間の記事一覧

SRM485 Div1 Medium(500) RectangleAvoidingColoring

RectangleAvoidingColoringDiv2より最大サイズが大きいので、そのままでは幅が1と2の場合が間に合わない。幅が1の場合は任意の色が塗れるので?の個数をcとして2c。幅が2の場合は、WWとBBという塗り方を高々1つ含みそれ以外はWBかBWと塗る方法の個数を動的計…

SRM485 Div2 Hard(1000) RectangleAvoidingColoringEasy

RectangleAvoidingColoringEasy盤面が大きい場合はrectangle-avoidingに塗ることができないので0を返す。小さい場合は探索。 #include <string> #include <vector> using namespace std; vector<string> B; int N, M; int BT() { for ( int a=0; a</string></vector></string>

SRM485 Div1 Easy(250), Div2 Medium(500) AfraidOfEven

AfraidOfEvena[i+1]-a[i]<a[i]-a[i-1]ならばa[i]を2倍に、そういうiが無くなりa[N-1]-a[N-2]>a[N-2]-a[N-3]ならばa[N-1]を2倍に、と繰り返す。それで駄目ならa[0]を2倍にして最初から。としても解けるけど、そんな面倒なことをする必要は無いと教わった。等差数列は、 偶偶偶偶…… 偶奇偶奇…… 奇偶奇偶…… 奇奇奇奇…… のいずれ</a[i]-a[i-1]ならばa[i]を2倍に、そういうiが無くなりa[n-1]-a[n-2]>…