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

SRM501 Div2 Easy(250) FoxProgression

FoxProgression #include <vector> using namespace std; class FoxProgression{public: int theCount( vector <int> seq ) { int n=(int)seq.size(); if ( n==1 ) return -1; int a1, a2; bool f1, f2; // 等差数列 int d = seq[1] - seq[0]; a1 = seq[n-1] + d; f1 = tr</int></vector>…

SRM501 Div1 Medium(500), Div2 Hard(1000) FoxAverageSequence

FoxAverageSequence動的計画法。数列の合計・直前のA[i]の値・A[i-1]≦A[i]が成り立つか、のそれぞれに対してbeautifulな数列の個数を覚えておく。A[i-1]の値は必要ない。 #include <vector> using namespace std; class FoxAverageSequence{public: int theCount( ve</vector>…

SRM501 Div1 Easy(250), Div2 Medium(500) FoxPlayingGame

FoxPlayingGame動的計画法。負値を掛けてスコアを最大にするためには最小値が必要となるので、move Aをa回とmove Bをb回行った時のスコアの最大値と最小値を覚えておく。 #include <vector> #include <cfloat> using namespace std; class FoxPlayingGame{public: double the</cfloat></vector>…

SRM501

Easy (250) 216.08 Medium (500) 0 Hard (1000) 0 Challenge 0 結果 1991 → 1946500を解きたかった(´・ω・`)

SRM500 Div2 Easy(250) SRMCards

SRMCards #include <vector> #include <set> using namespace std; class SRMCards{public: int maxTurns( vector <int> cards ) { set<int> C(cards.begin(),cards.end()); int t = 0; while ( ! C.empty() ) { int m = *C.begin(); C.erase(m); C.erase(m+1); t++; } return t; }};</int></int></set></vector>

SRM500 Div1 Medium(500) FractalPicture

FractalPicture長さがLのnon-finalな線分に問題の操作をk回行うと、線分の総延長は(1+2k/3)Lになる。x1,y1,x2,y2は全て整数なので線分の長さが1になるまで調べれば、以降は、あるnon-finalな線分から生成される図形は全てRに含まれるか全て含まれないかのい…

SRM500 Div1 Easy(250), Div2 Medium(500) MafiaGame

MafiaGamedecisionsの要素ごとに個数を数える。最大個数が1個ならば、vulnerableな人数はN人のままなので答えは0。それ以外の場合、第2ラウンドでvulnerableになるのはdecisionsに含まれる個数が最大の人達で、その人達に区別は無いので、以降のラウンドのvu…

SRM500

Easy (250) 140.51 Medium (500) 0 Hard (1000) 0 Challenge -25 結果 1970 → 1991チャレンジをミスった(´・ω・`)

SRM499 Div2 Easy(250) SimpleGuess

SimpleGuess #include <vector> using namespace std; class SimpleGuess{public: int getMaximum( vector <int> hints ) { int n = (int)hints.size(); int ans = 0; for ( int p=0; p</int></vector>

SRM499 Div1 Easy(250), Div2 Medium(500) ColorfulRabbits

ColorfulRabbits同じ色のウサギが異なる匹数を答えることはない。xと答えたウサギがy匹いた場合、ある色のウサギはx+1匹。y>x+1ならば他の色のウサギがいるはず……と考えると、少なくとも⌈y/(x+1)⌉*(x+1)匹のウサギがいる。 #include <vector> #include <set> #include <algorithm> us</algorithm></set></vector>…

SRM499

Easy (250) 237.97 Medium (550) 0 Hard (1000) 0 Challenge 0 結果 2012 → 1970Mediumはシステム落ち。(´・ω・`)