C++

コード品質管理ツール「CppDepend」を使ってみた

最近Node.jsを書くことが多く、コードの品質管理ツールとしてJSHintを使っています。VimやEmacs、SublimeやAtomなどの有名どころのエディタと連携して動的にコードスタイルのチェックが出来るため、コーディングを重ねることで自然によいコードを書けるよう…

Suffix Arrayを使ってみた

全く解き方が分からなかったMountain HolidaysのEditorialが出たので解いてみました. Mountain Holidays 整数の配列height(1 次の条件のいずれかを満たすとき(i1, j1)と(i2, j2)の2つの連続部分列は異なる. 1. j1 – i1 != j2 – i2 2. height[i1+k] – heigh…

SRM609参加記

初めてdiv2の本番で全完出来てテンションが上がったので書いちゃいます. MagicalStringDiv2(250) '>'と'''>'...' 単に数えるだけ. class MagicalStringDiv2 { public: int minimalMoves(string S) { int len = S.length(); int ret = 0; Rep(i, len){ if(i …

ARC017に参加しました

ようやく修論発表も無事(???)終わり、少し余裕が出来たのでARC017に参加。今回こそはCを解くと意気込んでいました。 A - 素数、コンテスト、素数 N(17≤N≤1,000,000)が与えられるので、Nが素数かどうか判定する。コピペをやるだけ。 始めsqrt(1,000,000)…

CodeChef October Challenge 2013を頑張ってみた

October Challenge 2013に参加しました。 初めて7問(正確には6.143問)解けたので参加記書きます。以下は解いた人が多い順です。 Helping Lira N個の三角形が与えられる。最大の面積と最小の面積を求めよ。 ライブラリがあったのでやるだけ。ソースコード M…

ミラー・ラビン素数判定法を使ってみた

CodeChefのMay Challenge 2013に挑んだ時に解けなかったWitua and Mathを解いてみました。 Witua and Math 整数Nが与えられる(2 オイラーのtotient関数をφとするとき、φ(i)/iを最大とするi(2 totient関数のWikipediaを見ると、この問題は「N以下で最大の素…

分数の話

Equations整数Nが与えられる。 (1/x) + (1/y) = 1/N! を満たす正数(x, y)の組の数(mod 1000007)を求めよ。 1000000!なので数え上げ系は無理。 変形すると (x + y)*N! = xy なのでこの式と組み合わせを上手く使って解くのかと思ったけどどうも上手くいかない…

切断点や橋を求めるTarjanのアルゴリズム

グラフ理論において、切断点(cut vertex, articulation point)とは無くす事でグラフの連結成分の数が増える頂点のことをいい、橋(bridge)とは無くす事でグラフの連結成分の数が増える辺のことをいいます。 グラフの頂点集合に対してDFSを行うと森(木の集ま…

BITを使ってみた

前に出たCodeChefのコンテストで解けなかった問題を解いてみました。Magic Board http://www.codechef.com/problems/MBOARDN*NのフィールドとQ個のクエリが与えられる。 クエリは RowSet i x: i行目をx(=0 or 1)にする。 ColSet i x: i列目をx(=0 or 1)にす…

Codeforces Round #166, CodeChefとか

EclipseのC++プラグインCDTがすごい使いやすいんですが、最近デバッグすると飛んだりします。しかも恐ろしいことに頻度が上がってきているような気がする・・・。 February 2013 Challenge http://www.codechef.com/FEB13CodeChefのロングランコンテストに出…

ARC12とZOJ

最近ようやくEclipseのテンプレート機能を有効活用し始めました。for文とか早く入力出来て便利ですねー。もっと早くScannerとPrintWriterをテンプレート化しておけば良かった。 AtCoder Regular Contest #012 http://arc012.contest.atcoder.jp/ A - 週末 英…

コンテストラッシュ2

ここ(http://wikiwiki.jp/kyopro/?FrontPage)を見て面白そうなOnline Judgeがあったのでいくつか登録してみました。あとFacebook Hacker Cupの結果を。 Facebook Hacker Cup 2013 Round 1 https://www.facebook.com/hackercup/problems.php?round=18989011…

コンテストラッシュ

最近プログラミングコンテストがやけに集中して開催されていたので、いくつか出てみました。 Facebook Hacker Cup 2013 Qualification Round 就活のためにと思って登録したFacebookでしたけど、コンテストなんてやっているとは。 1.Beautiful strings https:…

セグメント木を使ってみた

Competitive Programming Advent Calendar Div201218日目の記事、kagamizさんのIntroduction to Segment Treeを見て、セグメント木を実装してみました。解いたのはCodeforcesのC. Circular RMQ。久々にC++で実装しました。スクリプト言語でやろうかとも思っ…