2013-01-13から1日間の記事一覧

SRM566 Div2 Easy(250) PenguinTiles

PenguinTiles #include <string> #include <vector> using namespace std; class PenguinTiles{public: int minMoves( vector <string> tiles ) { int h = (int)tiles.size(); int w = (int)tiles[0].size(); for ( int y=0; y</string></vector></string>

SRM566 Div1 Medium(500) PenguinEmperor

PenguinEmperor対称性より、街iから街jに到達する旅程の数と、街i+kから街j+kに到達する旅程の数は等しい。街の数をnとする。i日目とi+n日目は同じ動きをするので、街0から出発してn日後にそれぞれの街へ到達する旅程の数を覚えておけば、それを使って、n日…

SRM566 Div2 Medium(500) PenguinPals

PenguinPals最適なペンギンの組合わせがあったとすると、ペンギンの並びをどこか1箇所で切って直線にできる。ペンギンが直線に並んでいたとすると、最多の組数は動的計画法で求められる。各区間内のペンギンでの最多の組数を覚えておけばよい。 #include <string> #i</string>…