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

SRM574

Easy (275) 0 Medium (450) 279.85 Hard (1050) 0 Challenge 0 結果 198位 2111→2096

SRM573

Easy (250) 197.51 Medium (450) 245.31 Hard (850) 0 Challenge 0 結果 79位 2083→2111

SRM572 Div2 Medium(500) NextOrPrev

NextOrPrevae→{0,1}, acb→{0,2,1}のように、各文字の文字列中での順位を表す配列を考える。startとgoalでの配列が一致していれば変換可能、一致していなければ途中で同じ文字になってしまうので不可能。変換可能なら貪欲に変換すれば良い。 #include <string> #inclu</string>…

SRM572 Div2 Easy(250) EasyHomework

EasyHomework #include <vector> #include <string> using namespace std; class EasyHomework{public: string determineSign( vector <int> A ) { int ans = 1; for ( int i=0; i<(int)A.size(); i++ ) ans *= A[i]>0 ? 1 : A[i]<0 ? -1 : 0; return ans>0 ? "POSITIVE" : ans<0 </int></string></vector>…

SRM572 Div1 Medium(500) EllysBulls

EllysBulls半分全列挙。左半分の数字を全て生成して、guessごとに何個正解しているかを数える。次に、右半分を全て生成して、何個正解しているかを数え、足し合わせるとbullsになるような左半分があるかを調べる。mapの引数にvectorはとても重いというイメー…

SRM572 Div1 Easy(250) NewArenaPassword

NewArenaPassword文字列の接頭辞でも接尾辞でもある文字列をborderという。長さnの文字列wが長さbのborderを持つ⇔wが周期n-bを持つ。一番多い文字以外を書き換える。 #include <string> #include <vector> #include <algorithm> using namespace std; class NewArenaPassword{public: in</algorithm></vector></string>…

SRM572

Easy (250) 224.27 Medium (500) 0 Hard (1000) 0 Challenge 0 結果 139位 2083→2083Mediumは探索解がTLE。卒業までにレッドコーダーに返り咲くという目標が絶望的になってきた。

2013 TCO Round 1B Medium(500) EllysFigurines

EllysFigurines少なくともこの列は消すという列を決めれば、貪欲に左から消すことで最小回数が求められる。行も同様。また、消す列を決めれば、残った像がいる行を消さなければいけない。消す列を全探索する。 #include <string> #include <vector> using namespace std; int</vector></string>…

2013 TCO Round 1B Easy(250)

EllysPairs window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"…

2013 TCO Round 1B

Easy (250) 246.02 Medium (500) 405.27 Hard (1000) 789.10 Challenge 0 結果 44位 2032→2083通過。全問を解けると気分が良い(・∀・)

2013 TCO Round 1A Medium(500) TheFrog

TheFrogXは最小なので、少なくとも1個のR[i]を通る。kを整数として、X=R[i]/kとなる。またXが1未満になることはない。そのようなXを列挙してpitに落ちないかを調べる。 #include <vector> using namespace std; class TheFrog{public: double getMinimum( int D, vec</vector>…

2013 TCO Round 1A Easy(250) HouseBuilding

HouseBuilding揃える高さを色々試してみれば良い。 #include <string> #include <vector> using namespace std; class HouseBuilding{public: int getMinimum( vector <string> area ) { int h = (int)area.size(); int w = (int)area[0].size(); int ans = w*h*10; for ( int i=0; i</string></vector></string>…

2013 TCO Round 1B Hard(1000) EllysReversals

EllysReversals許されている操作で何ができるかを考える。文字列の長さが奇数ならば最後の1文字を動かすことはできない。先頭から2文字1組に分けたときに、その2文字をバラすことはできない。先頭を経由すると、この組は自由な場所に動かすことはできるし、2…