読者です 読者をやめる 読者になる 読者になる

第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>…

AOJ 0191 Baby Tree

404 Not Found やっとまともにDP解けたー!!!!!(嬉) #include <cstdio> #include <algorithm> using namespace std; int main() { int n, m; while(scanf("%d %d\n", &n, &m), n || m){ long double g[n][n]; /* dp[a][b]は、a回目にbの肥料を与えた時のaまでの成長率の最大値 */</algorithm></cstdio>…

AOJ 2216 Summer of KMC

404 Not Found #include <cstdio> int main() { int A, B; while(scanf("%d %d\n", &A, &B), A || B){ int hyak = 0, gohyak = 0, sen = 0; int x = B - A; if(1000 <= x){ sen = x / 1000; x %= 1000; } if(500 <= x){ gohyak = x / 500; x %= 500; } if(100 <= x){</cstdio>…

Codeforces Beta Round #54 (Div. 2)

A. Chat room #include <iostream> #include <string> using namespace std; int main() { string s, t("hello"); cin>>s; int cnt = 0; for(int i = 0; i < s.size(); i++){ if(cnt >= t.size()) break; if(s[i] == t[cnt]){ cnt++; } } cout<<(cnt >= t.size() ? "YES" : "NO</string></iostream>…

TopCoder SRM 496 DIV2

Rating: 654→892(灰) 前が酷かったので上がってもまだ灰色コーダーだけれども、大分一気に上がった。Total: 698.3 points 250: AnagramFree 239.97 points #include <map> #include <string> #include <vector> using namespace std; class AnagramFree { public: int getMaximumS</vector></string></map>…

JOI過去問未solved一覧

×:実装方法分からず ?:実装したけどアルゴリズム分からず △:実装したけどバグとれず ○:Solved 無印:ノンタッチ 第5回 予選 ×AIZU ONLINE JUDGE ×AIZU ONLINE JUDGE 本選 ×AIZU ONLINE JUDGE ×AIZU ONLINE JUDGE 第6回 本選 △AIZU ONLINE JUDGE △AIZU O…

日本情報オリンピック 第8回本選

JOI 2008-2009 本選 問題・データ 1. IOIOI 404 Not Found #include <iostream> #include <string> #include <vector> using namespace std; int main() { long long n; while(cin>>n, n){ long long m; string s; cin>>m>>s; n = 2 * n + 1; vector<long long> v; int len = 0; bool is_seq = 0; </long></vector></string></iostream>…

日本情報オリンピック 第7回本選

JOI 2007-2008 本選 問題・データ 1. 碁石ならべ 何故かWAする。たしかにテストケースに対する答え見ると違う。なんでだろう。問題を理解できてないのかなあ…見た通り実装した筈なんだが… 2. 共通部分文字列 Longest Common Subsequenceではない。Longest Co…

日本情報オリンピック 第6回本選

JOI 2006-2007 本選 問題・データ 1. 最大の和 404 Not Found #include <cstdio> #include <vector> #include <climits> using namespace std; int main(){ int n, k; while(scanf("%d %d\n", &n, &k), n || k){ vector<int> v(n); for(int i = 0; i < n; i++) scanf("%d\n", &v[i]); int S</int></climits></vector></cstdio>…

日本情報オリンピック 第5回本選

JOI 2006 本選 問題・データ 1. Questionnaire 404 Not Found #include <cstdio> #include <map> #include <set> #include <vector> using namespace std; int main() { int n, m; while(scanf("%d %d\n", &n, &m), n || m){ map<int, int> ma; for(int i = 0; i < n; i++){ for(int j = 0, x; j </int,></vector></set></map></cstdio>…

POJ 1005 I Think I Need a Houseboat

1005 -- I Think I Need a Houseboat #include <cstdio> #include <cmath> int main() { int N; const double pi = 3.1415; scanf("%d\n", &N); for(int i = 0; i < N; i++){ double X, Y; scanf("%lf %lf\n", &X, &Y); double a = sqrt(X*X + Y*Y); for(int j = 0; ; j++){</cmath></cstdio>…

JOI予選過去問 解けなかった問題、まだ解いていない問題

要デバッグ 第9回 6. 方向音痴のトナカイ AOJ 0548 Reindeer with no sense of direction 第8回 4. 薄氷渡り AOJ 0535 Crossing Black Ice 第5回模試1 3. Two Number Cards 第5回模試2 1. Tunnel 解説を読んでアルゴリズムを理解しないといけない 第8回 5. …

情報オリンピック 第5回模擬試験1, 2

模擬試験の問題はJOIにはありません。ので、手元で一応確認したものの間違ってる可能性も。 オーダーとか何それって感じ。 情報オリンピック 第5回模擬試験1 JOI 2006 模擬試験1 問題・データ 1. Triangle Types #include <cstdio> #include <vector> #include <algorithm> using names</algorithm></vector></cstdio>…

JOI予選過去問解けなかった物(2010/12/16 12:00時点)

(Total Progress: 4 / 10) 第9回 6. 方向音痴のトナカイ AOJ 0548 Reindeer with no sense of direction 404 Not Foundどこから手をつけていいかすら分からない。 実際ヒント見るとそんなに難しくはない。けど何故かTLE→Runtime Error。えーそんなー。ところ…

情報オリンピック 第5回予選問題

JOI 2006 予選 問題・データ 1. AOJ 0500 Card Game 404 Not Found 時間があったらまた解く。 2. AOJ 0501 Data Conversion 404 Not Found AOJ 0501 Data Conversion - ペリャウドのプログラミングとか 時間があったらまた解く。 3. AOJ 0502 Dice 404 Not F…

情報オリンピック 第7回予選問題

JOI 2007-2008 予選 問題・データ 1. おつり AOJ 0521 Change AIZU ONLINE JUDGE #include <cstdio> int count(int x){ int coins = 0; while(x >= 500) coins++, x -= 500; while(x >= 100) coins++, x -= 100; while(x >= 50) coins++, x -= 50; while(x >= 10) co</cstdio>…

情報オリンピック 第8回予選問題

JOI 2008-2009 予選 問題・データ 1. タイムカード AOJ 0532 Time Card 404 Not Found #include <cstdio> class Time { public: int h, m, s; void read(){ scanf("%d %d %d\n", &h, &m, &s); return; } long long totalsec(){ return h*60*60 + m*60 + s; } static </cstdio>…

情報オリンピック 第6回予選問題

JOI 2006-2007 予選 問題・データ 1. 得点 AOJ 0510 Score 404 Not Found #include <cstdio> #include <algorithm> using namespace std; int main() { int A = 0, B = 0; for(int i = 0, t; i < 4; i++) scanf("%d\n", &t), A += t; for(int i = 0, t; i < 4; i++) scanf("%d\n</algorithm></cstdio>…

情報オリンピック 第9回予選問題

JOI対策の一環で解いた。AOJ in JOI,PCK 回別リスト - 簡潔なQ ありがてえありがてえqnighyさんありがとうございます。 AOJ 0543 Receipt 404 Not Found #include <cstdio> int main() { int total; while(scanf("%d\n", &total), total){ int others = 0; for(int i</cstdio>…

AOJ 0117 A Reward for a Carpenter

404 Not Found #include <cstdio> #include <vector> #include <queue> #include <climits> using namespace std; class E { public: int to, cost; E(int to, int cost){ this->to = to; this->cost = cost; } }; class P { public: int cost, node; P(int cost, int node){ this->cost = co</climits></queue></vector></cstdio>…

AOJ 0526 Boat Travel

404 Not Found #include <cstdio> #include <vector> #include <queue> #include <climits> using namespace std; class E { public: int to, cost; E(int to, int cost){this->to = to;this->cost = cost;} }; class Pr { public: int cost, edge; Pr(int cost, int edge){this->cost = cost</climits></queue></vector></cstdio>…