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

SRM531 Div1 Easy(300), Div2 Medium(600) NoRepeatPlaylist

NoRepeatPlaylist動的計画法。i曲目を聴き終わった時点でj種類の曲を聴いている場合の数を覚えておく。それをT[i][j]とすると、T[i][j] = T[i-1][j-1]*(N-j+1) + T[i-1][j]*max(j-M,0)が成り立つ。なぜなら、1曲前まででj-1種類の曲を聴いているならば、今ま…

SRM531

Easy (300) 194.25 Medium (500) 0 Hard (1000) 0 Challenge 0 結果 207位 2031→2029

SRM531 Div2 Easy(250) UnsortedSequence

UnsortedSequence最後の例のように、ソートして、最大の要素とは異なる最も後ろの要素をその1個後と交換する。 #include <vector> #include <algorithm> using namespace std; class UnsortedSequence{public: vector <int> getUnsorted( vector <int> s ) { int N = (int)s.size(); sort(</int></int></algorithm></vector>…

SRM531 Div1 Medium(500) MonsterFarm

MonsterFarmNステップ、モンスターを増殖させる。その後のNステップでモンスターが増えなければ、モンスターの数は有限。増えるなら無限に増える。ノードがNのグラフをN-1回辿れば、到達可能なノードには全て到達するから。1000000007と0を区別する必要があ…

SRM529

Easy (250) 223.62 Medium (600) 0 Hard (900) 0 Challenge 0 結果 149位 2007→2031