Algorithm

第11回日本情報オリンピック本選参加記

結果は220点でBランクでした。問1でバグ死というありえない落ち方をして、正直現実の出来事として捉えられていませんが、 これからゆっくりと現実と向き合っていこうと思います(大袈裟)。 初日 Practice前 自作のきゅうり帽(右写真)を持参していった。かぶっ…

JOI予選過去問 実はまだ解けない問題

通ったから言える実は僕解けません問題。 第11回 6. ジグザグ数 日本情報オリンピック(JOI) 第11回予選 自分の提出した解答 - ペリャウドのプログラミングとか これも参照。 第10回 4. 1年生 一度みながら通した事あるんですけど、実はこのDP納得できていな…

日本情報オリンピック(JOI) 第11回 予選突破しました

Aランク、104点でした。JOI 2011-2012 予選 問題・採点用入力4のほうが5より難易度低いというのが、僕の感覚的にはよく分からない。みんな4で折れて5に進まないだけとかなのだろうか。ところで最近C++のコンストラクタの初期化リストという物をはじめて知っ…

日本情報オリンピック(JOI) 第11回予選 自分の提出した解答

kyuridenamida解と比較したので多分答えられた部分についてはあってる。JOI 2011-2012 予選 問題・採点用入力全体の感想としては、1-3は去年より一段ひねってあるというか、面倒な感じで、4は去年の4番のDPよりは少し難化していると思う。 5が去年の比でなく…

あと埋めたいアルゴリズム知識

何もしてこなかった訳じゃないので、一応「考えれば分かる」問題への耐性はある程度ついたと信じたいんですよ… DP SegTree Dijkstra以外のグラフアルゴリズム UF

やたーDiceをOCamlで書いたよー

長年JOIer達の間で「どうやればきれいに解けるのか」「無理」という会話がなされてきたDiceをOCamlで解いた。よっしゃ結構きれいや!と思ってドヤ顔をしつつ他のC++のソースとか参照してたら別にきれいでもない上にこっちのほうが長かったので死にたい。 でも…

第7回JOI予選問題 2週目

全完までに2時間18分。問6のデバッグでかなり食った。よろしくない。過去と比較すると、どの程度1年間でコーディング力が変わったか観察できて面白いかもしれない。内容自体に差はないがコードの可読性は結構上がったと勝手に思っている。JOI 2007-2008 予選…

OCamlで第10回JOI予選問題を解いてみた

最近OCamlはじめました。情オリ前なのに…(こんな暇な事をしている暇は無い、はずなのだけど…) OCamlという物の雰囲気の参考にでもしていただければ幸いです。詳しい人からのツッコみお待ちしています。 問題1: 合計時間 let rec get_times n = if n > 0 then…

TopCoder SRM 524 DIV2

Rating: 1156(緑)→1160(緑) なかなかDIV1に行けないなぁ…まあ行った所で現状DIV1 Mediumは解けそうにもないのでアレなんですけどね。585.37 Point 250: ShippingCubes #include <iostream> #include <sstream> #include <string> #include <vector> #include <climits> using namespace std; class Shippi</climits></vector></string></sstream></iostream>…

TopCoder SRM 523 DIV2

Rating: 1143(緑)→1156(緑)いろいろとしくじった。Challenge大荒れの回だった。229.78 Point 250: AlphabetPath #include <iostream> #include <sstream> #include <string> #include <vector> using namespace std; class AlphabetPath { private: bool isValid(int x, int y, vector<string>& maze) { </string></vector></string></sstream></iostream>…

TopCoder SRM 521 DIV2

Rating: 1087(緑)→1143(緑) レーティング的にはDIV1が段々と見えてきていて嬉しい。この調子でがんばろう。 System Testが荒れたので人権のある順位になったが、荒れる意味がわからない。 回全体としては不評だった。難易度設定がおかしい。679.96 Point 250…

TopCoder SRM 520 DIV2

Rating: 1014(緑)→1087(緑) 調子としては悪くないが、気分的に1000は解けてほしかった。毎回これか、これを上回ってくれる調子だと良いなという感じ。531.87 Point 250: SRMRoomAssignmentPhase #include <iostream> #include <sstream> #include <string> #include <vector> #include <algorithm> using na</algorithm></vector></string></sstream></iostream>…

TopCoder SRM 519 DIV2

Rating: 975(緑)→1014(緑) 600がいろいろとおかしい。おかしいのに通してしまったので恥ずかしい。480.29 Point 250: WhichDay #include <iostream> #include <sstream> #include <string> #include <vector> using namespace std; class WhichDay { public: string getDay(vector <string> notOnThisDay</string></vector></string></sstream></iostream>…

TopCoder SRM 518 DIV2

Rating: 962(緑)→975(緑)サブミット速度も上げていかなければいけないと感じた。1000が解けそうで解けなかった。doubleの挙動はよく分からない。599.99 Point 250: TwiceString #include <iostream> #include <sstream> #include <string> #include <vector> using namespace std; class TwiceSt</vector></string></sstream></iostream>…

TopCoder SRM 517 DIV2

Rating: 1061(緑)→962(緑) レート共々爆死した。なんてことをしてしまったんだ。あとでデバッグした結果をのせる。 250: MonochromaticBoard #include <iostream> #include <sstream> #include <string> #include <vector> #include <set> using namespace std; class MonochromaticBoard { public: i</set></vector></string></sstream></iostream>…

TopCoder SRM 516 DIV2

Rating: 1026(緑)→1061(緑) 250、500共に不要な悩み方をして相当時間をかけてしまい、当初500位台だったので爆死を覚悟したが、System Testが大荒れになってくれたおかげで100位台まで上がり救われた。 250: NetworkXZeroOne #include <iostream> #include <sstream> #include <string> </string></sstream></iostream>…

TopCoder SRM 514 DIV2

Rating: 951(緑)→1026(緑)やっとTopCoder登録直後のインチキレート(1031)に近付いてきた。その間1年。 250: MagicalGirlLevelOneDivTwo #include <iostream> #include <sstream> #include <string> #include <vector> #include <cmath> using namespace std; class MagicalGirlLevelOneDivTwo { private</cmath></vector></string></sstream></iostream>…

Codeforces Beta Round #80 (DIV.2)

Rating: 1486(緑)→1461(緑)1310 Points A - Blackjack #include <cstdio> int main() { int n; scanf("%d\n", &n); int res = 0; n -= 10; if (1 <= n && n <= 11) { if ((1 <= n && n <= 9) || n == 11) { res = 4; } else if (n == 10) { res = 15; } } else { res</cstdio>…

理解できていない問題

メモ。僕の競技プログラミング力はゴミです。 SRM 426 DIV2 Medium ShufflingMachine (問題文がまずよく分からない、cardsReceivedって何だ) SRM 437 DIV2 Medium TheSwap (簡単なDPやだー) SRM 441 DIV2 Medium PaperAndPaintEasy (どう実装すればいいか分…

TopCoder SRM 513 DIV2

Rating: 926(緑)→951(緑) System Test直前にこんな事を言ったら、本当にレーティングが上がってしまったので、このアイコンが一年間確定になってしまった。 というのは、主に僕がウケている内輪受けの話なので、別にどうで良い。問題は前回から今回までの間…

TopCoder SRM 512 DIV2

Rating: 892(灰) → 926(緑) 緑復帰。といってもそもそも灰になったSRM 508についてノンタッチなのだが。本格的なTopCoder復帰回。というかもう少し熱心にTCもPOJもやらないと今年の情報オリンピックが本気で危ないと思うのだがどうだろうか。 でもPOJ難しく…

TopCoder Member SRM 503 DIV2

Rating: 944(緑)→935(緑) ちょっと落ちた。いろいろと反省したいと思う。240.48 Points 250: ToastXRaspberry 別に考えるまでもない問題。切り上げとかでバグったりしたくなかったのでceilに投げました。240.48 Points #include <cmath> using namespace std; class</cmath>…

Codeforces Beta Round #65 (Div. 2)

Rating: 1400(緑) → 1558(青) 2714 Points A - Way Too Long Words 492 Points #include <iostream> #include <string> using namespace std; int main() { int n; cin>>n; for(int i = 0; i < n; i++){ string s; cin>>s; if(s.size() > 10){ cout<</string></iostream>

TopCoder Member SRM 501 DIV2

Rating: 843(灰)→944(緑)やった!緑に復帰やっとできた! やっと、とはいえ、一番最初の元の緑はマグレなので、やっとそれなりに実力がついてきたかなという感じ。259.27 Points 250: FoxProgression 純粋に等差数列と等比数列の判定を2つの関数に分けていて、…

Codeforces Beta Round #64

本番は死にました。その後HaskellでAだけ解けてやったーとか言ってるので貼っておきます。 Real World Haskell読み途中。 main = getLine >>= putStrLn . show . solve . (read :: String -> Int) where solve 0 = 1 solve n = (3 ^ (n - 1)) `mod` (10^6 + …

TopCoder SRM 500 DIV2

Rating: 859→843(灰) 下がったーまあ当然ですね…167.26 Points 250: SRMCards 愚直に問題文の定義の通り実装してしまった…167.26 Points #include <iostream> #include <sstream> #include <string> #include <vector> #include <algorithm> using namespace std; class SRMCards { public: inline int exis</algorithm></vector></string></sstream></iostream>…

TopCoder SRM 499 DIV2

Rating: 894→859(灰) 下がりました。はい。まあ当然ですね… 500と950落とされた。まあたしかによくよく考えれば分かる事だったんだけど、一応全部解けた気でいたから、ショック…234.89 Points 250: SimpleGuess 234.89 Points #include <iostream> #include <sstream> #include <string></string></sstream></iostream>…

TopCoder SRM 398 DIV 2 (Practice)

SRM 499前にやった。 250: MinDifference #include <iostream> #include <sstream> #include <string> #include <vector> using namespace std; class MinDifference { public: int closestElements(int A0, int X, int Y, int M, int n) { vector<int> A(n); A[0] = A0; for(int i = 1; i < n; i++){</int></vector></string></sstream></iostream>…

TopCoder SRM 498 DIV2

Rating: 883→894(灰) 400.41 Pointsとりあえず上がったので良かった。 全体としては、コーディング速度の壁に一つブチ当たったような気もする。 250: AdditionGame 実装に迷ってしまって、最初vector→めんどい→set→「あ、違ぇや」などの流れを踏んだ結果、非…

TopCoder SRM 497 DIV2

Rating: 892→883(灰) 167.02 Points 250: Filtering ソートとかに迷いが生じてSubmitがすごい遅くなった。 167.02 Points #include <vector> #include <string> #include <algorithm> #include <map> using namespace std; class Filtering { public: vector <int> designFilter(vector <int> sizes, st</int></int></map></algorithm></string></vector>…