Programming

三日間で、Ruby未経験から、Railsで一定の物を作れるようになる方法

最近、短期間でWebアプリケーションを作らなければならないという状況に直面するという事があった。 どのような環境で動かすのかという事を考えた結果、後々の再利用も考えて、Herokuで普通にRailsアプリケーションを動かすのが一番良い選択であると思い、そ…

第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が去年の比でなく…

やたー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>…

htmlcxxのコンパイルで'prtdiff_t' does not name a typeとか言われる問題

古いC++なのかなんだかよく分からないが、ともかくtree.hでcstddefがインクルードされていない結果怒られるので、それだけ修正すれば良い。html/tree.hで #ifndef tree_hh_ #define tree_hh_ #include <cassert> #include <memory> #include <stdexcept> #include <iterator> #include <set> #include <cstddef> /</cstddef></set></iterator></stdexcept></memory></cassert>…

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

ふつうのHaskellプログラミング 練習問題

ページ数などは初版第4版基準。 正しい自信はない。プログラム類は一応動いた。 あと壮絶な斜め読みをしているので、題意に沿った解答ができているとは限らない。 Haskellとか分からんし…はやく慣れたいね。 2.8 練習問題(P. 53) 1. countbyte.hs main = do …

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

Project Euler Problem 3

Problem 3 - Project Euler コード #include <cstdio> long long lpf(long long x){ long long maximum = 0; while(x != 1){ for(long long i = 2; ; i++){ if(!(x % i)){ x /= i; maximum = i; break; } } } return maximum; } int main() { printf("%lld\n", lpf(6</cstdio>…

Project Euler Problem 2

Problem 2 - Project Euler コード #include <cstdio> int main() { unsigned long long Fa = 0, Fb = 1, Fsum = 0; while(Fb < 4000000){ if(!(Fb % 2)) Fsum += Fb; Fa ^= Fb; Fb ^= Fa; Fa ^= Fb; Fb += Fa; } printf("%lld\n", Fsum); return 0; } 答え 4613732</cstdio>…

Project Euler Problem 6

コード #include <cstdio> inline long long sq(long long x){ return x * x; } int main() { long long a = 0, b = 0; for(int i = 1; i <= 100; i++) a += sq(i); for(int i = 1; i <= 100; i++) b += i; b = sq(b); printf("%lld\n", b - a); return 0; } 答え 25</cstdio>…

Project Euler Problem 5

コード #include <cstdio> #include <algorithm> using namespace std; #define lcm(a,b) (a/__gcd(a,b)*b) int main() { int result = 1; for(int i = 2; i <= 20; i++){ result = lcm(result, i); } printf("%d\n", result); return 0; } 答え 232792560LCMのマクロはid:kyuri</algorithm></cstdio>…

Project Euler Problem 4

Problem 4 - Project Euler コード #include <cstdio> #include <sstream> #include <algorithm> using namespace std; bool is_parlindrome(int x){ stringstream ss; ss<</algorithm></sstream></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>…

You asked me to pull without telling me which branch you(略)って言われた時にする事

githubなんかでgit initした側で(git cloneした側以外で)、git pullしようとすると、そんな感じで怒られたりする。以下を呪文のように打っておくとどうにかなる、らしい。 % git config branch.master.merge refs/heads/master % git config branch.master.r…

日本情報オリンピック第10回 予選通過しました

予選は80点でAランクでした。解けなかったのは4番と6番。それでもどうにか通過できました。一安心。 これも周囲でがんばっていた他のJOI参加者の皆さんの背中を見てきたからこその事です。ありがとうございます。とはいっても全然油断はできないのでさっそく…

SKKの接尾辞機能

SKK辞書を眺めていて知った話だが、SKKには接尾辞変換という機能があるらしい。SKK by javascript: メモ SKK では「変換直後」で(あるいは上のように確定キーを押すかわりに)「>」を押すと、接尾辞変換モードとなる。 へえ、1年程度SKK使いをやっているが、…