2016年6月20日

本日はAtCoder株式会社の設立記念日です。すっかり忘れていました。4年が経過したそうです。相変わらず運と人に助けられて生きています。去年との大きな差分は、人が増えたことです。去年の6月20日時点では、社員(準社員と役員含むバイトなし)が3人でした…

きっと何者にもなれないお前たちに告げる

これは退学アドベントカレンダー2015の24日目に捧げる文章です。 経緯 退学アドベントカレンダーということで、当日になったらアドベントカレンダーそのものから退学しようかと目論んでいた。しかし、見事に先を越されてしまった。ここを見てほしい。見事に…

2015年6月20日

6月20日はAtCoder株式会社の設立記念日です。去年は全く覚えていませんでしたが、今年は思い出すことができました。 4年目に突入です。一説によると、ベンチャー企業は3年で半分くらいは倒産するようです。下半分には入らなかったようです。が、現状に全く満…

競技プログラミングで利益をあげるために最も大切なことは何か

はじめに この記事はCompetitive Programming Advent Calendar 2014の24日目に相当します。 Competitive Programming Advent Calendar 2014 Competitive Programming Advent Calendar 2014 - PARTAKEメリークリスマス。みなさま、いかがお過ごしでしょうか。…

6月27日

6月27日 Atcoder株式会社の設立記念日が2012年6月20日なので、どうやら設立して2年も経過しています。 感慨深い気持ちは全く無いです。忘れてたし。

AtCoderについて

はじめに この記事はCompetitive Programming Advent Calendar Div2013の19日目に相当します。 他の方がデータ構造とプログラミング技法について触れておられるので、競技プログラミングに関連した社会問題について書きます。 よって、本記事ではテクニカル…

最近買った本といろいろ

積読状態を晒す 続・アルゴリズムを学ぼう作者: 川中真耶,杵渕朋彦,椎名俊輔出版社/メーカー: アスキー・メディアワークス発売日: 2013/08/01メディア: 大型本この商品を含むブログ (1件) を見る今回は正規表現とオートマトンまで言及されてます。 流し読み…

今年聴いた音楽と、小学生並みの感想

目的 今年聴いた音楽を季節順に列挙して、一年を振り返ること。 1月~3月 うっ、頭が... どうやら卒論などに追われていたみたいでマジで記憶が無い。 いろいろ辛かったことはあるみたいだけど、どーやら記憶から抹消されたようです。 [PV]ELLEGARDEN - Space …

今年読んだ本と、いろいろな雑記

今年読んだ本からいくつか紹介する試み。 意識高い系 起業的なもの ゼロ ゼロ―――なにもない自分に小さなイチを足していく作者: 堀江貴文出版社/メーカー: ダイヤモンド社発売日: 2013/11/01メディア: 単行本(ソフトカバー)この商品を含むブログ (12件) を…

ARCのネタバレ

ARCのネタバレ集 この記事はCompetitive Programming Advent Calendar Div2012の19日目の記事です。 ARCのネタバレをします。 といっても、ぼくはWriterではありません。 社長が作った問題(らしき何か)にストーリーをつけて、正しい日本語にするお仕事をし…

ACM/ICPC国際プログラミングコンテスト2012

Team Akensho で出場しました。 なぜか(?)僕のアカウント名で登録されてしまいました。悲しみ。 メンバは B4 僕 B4 研究室のお友達 M1 先輩 でした。この中ではM1の先輩が一番強いです。 言語はJavaで参戦しました。 チーム結成から前日まで みんなの予定が…

AOJ 0022 Maximum Sum Sequece

AOJ

リンク AOJ 0022 Maximum Sum Sequece 方針 力ずくで解きました。全探索してです。 入力が1つだけの場合、入力が全て負の数の場合、この2つを忘れていて2WAくらいました・・・かなしい。ちなみに、 AOJ 0022 とかで検索をかけると、もっと効率的な解法があ…

AOJ 0021 Parallelism

AOJ

リンク AOJ 0021 Parallelism 方針 結局は、1次関数が平行であるかどうかがわかればいいので、関数の傾きが一致するかを調べました。 注意 ただし、分母が0になる凶悪な(?)ケースを忘れずに。 ソース import java.util.*; public class Main { static Sca…

AOJ 0020 Capitalize

AOJ

リンク AOJ 0020 Capitalize 方針 StringクラスのtoUpperCaseメソッドを使います。 ソース import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); static String input; public static void main(String[] args) { read(); …

AOJ 0019 Factorial

AOJ

リンク AOJ 0019 Factorial 方針 階乗は再起的な計算になるので、再帰で書きました。 4の階乗を計算するためには、3の階乗の値がほしい。 3の階乗を計算するためには、2の階乗の値がほしい。 2の階乗を計算するためには、1の階乗の値がほしい。 1の階…

AOJ 0018 Sorting Five Numbers

AOJ

リンク AOJ 0018 Sorting Five Numbers 方針 Don't think. Feel.(訳:これをパクればおk) ソース import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); static int[] array = new int[5]; public static void main(String[…

AOJ 0017 Caesar Chipher

AOJ

リンク AOJ 0017 Caesar Chipher 方針 単語を1文字ずつずらしていきます。「ただし、暗号化する前のデータは the, this, that という単語のいずれかを含む英語の文章ですので〜」とあるので、ずらしていく途中でそれらの単語を検出すると、ずらすのをやめま…

AOJ 0016 Treasure Hunt

AOJ

リンク AOJ 0016 Treasure Hunt 方針 次に移動する点は、これから歩く距離を半径とした円周上の点であり、角度もわかっているのでsinとcosを使えば求めることができます。 ただし、 与えられる角度は原点からの角度ではなく、現在地点からの角度であること。…

AOJ 0015 National Budget

AOJ

リンク AOJ 0015 National Budget 方針 JavaにはBigIntegerクラスという任意精度の整数を扱うことができるクラスがあるのでそれを使います。 また、桁数はAOJ 0002のように、一度整数から文字列に変換し、文字列長をとればわかります。 ソース import java.u…

AOJ 0014 Integral

AOJ

リンク AOJ 0014 Integral 方針 区分求積法というやつですね。題意に従って計算するだけでしたが、答えが合わなくて先輩に泣きついた過去があります。。。どこでハマってしまったのかが思い出せないです。 ソース import java.util.*; public class Main { s…

AOJ 0013 Switching Railroad Cars

AOJ

リンク AOJ 0013 Switching Railroad Cars 方針 スタックというデータ構造を使います。というか、それに気がつけばおしまいです。 ソース import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); static Stack<Integer> stack = new S</integer>…

AOJ 0012 A Point in a Triangle

AOJ

リンク AOJ 0012 A Point in a Triangle 方針 もし、pが三角形の内部にあるのなら、3つの三角形pab,pbc,pacの和と、元の三角形abcの面積は等しくなります。それを利用しました。 ただ、この世には「外積」という便利なものがあります。 本来はそちらを使う…

AOJ 0011 Drawing Lots

AOJ

AOJ 0010なんてなかった リンク AOJ 0011 Drawing Lots 方針 あみだくじって、上から順に交換していけば結果がわかりますよね・・・ なので馬鹿正直に交換していきました。 ソース import java.util.*; public class Main { static Scanner sc = new Scanner…

AOJ 0009 Prime Number

AOJ

リンク AOJ 0009 Prime Number 方針 素数の判定をするにはエラトステネスの篩を使います。 ソース import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); static int[] prime; static int n; public static void main(Strin…

AOJ 0008 Sum of 4 Integers

AOJ

リンク AOJ 0008 Sum of 4 Integers 方針 愚直にforの4重ループで全探索しています。この手の問題はforループで書いてしまうと、Time Limit(今回は1sec)に間に合わないことが多いです。 今回は、の計算量に対して、n = 50なので、50^4 = 6250000となり、ま…

AOJ 0007 Debt Hell

AOJ

リンク AOJ 0007 Debt Hell 方針 「借金の 1,000 円未満を切り上げます」この処理が鬱陶しいですね。 借金(Debt)を1000で割った余り(r)をとって、それが0なら切り上げはなしです。 0でないとき、切り上げるので、借金に1000を足します。そして、余りを引き…

AOJ 0006 Reverse Sequence

AOJ

リンク AOJ 0006 Reverse Sequence 方針 StringBuilderクラスのreverseメソッドを使いました。これで一発です。 例: String example = new StringBuilder("Akensho").reverse().toString(); System.out.println(example); 出力結果はohsnekAです。 ソース i…

AOJ 0005 GCD and LCM

AOJ

リンク AOJ 0005 GCD and LCM 方針 最大公約数を求めるためにBigIntegerクラスのgcdメソッドを使いました。 また、2つの正の整数a,bの最大公約数をgcd(a,b)と表現し、最小公倍数をlcm(a,b)と表したとき、以下のような関係 を用いてlcm(a,b)を簡単に求めるこ…

AOJ 0004 Simultaneous Equation

AOJ

リンク AOJ 0004 Simultaneous Equation 方針 連立方程式ということで、逆行列を作って両辺の左からかけました。 2次の行列式の定義はこちらが一番わかりやすいかも。 あとは愚直に式変形です。 ポイント 小数点以下第〜位まで出力してください。のような処…

AOJ 0003 Is it a Right Triangle?

AOJ

リンク AOJ 0003 Is it a Right Triangle? 方針 辺a, b, c について三平方の定理 が成立するかを調べます。 調べるといいましても、たかが3通りなのでif文で書いちゃいました。 注意 複数のデータセットが与えられます・・・といった場合、入力を処理すると…

AOJ 0002 Digit Number

AOJ

リンク AOJ 0002 Digit Number 方針 初めは「a+bを10で割ったときの商が、10より小さくなるまで割り続ける」という方針でした。 例:のとき (1回目の割り算。商が13なので、10より大きい。さらに割る) (2回目の割り算。商が1なので、10より小さい。おしまい)…

AOJ 0001 List of Top 3 Hills

AOJ

リンク AOJ 0001 List of Top 3 Hills 方針 配列arrayに値を入れていきます。 JavaはScannerクラスを使って入力を処理します。 Scanner sc = new Scanner(System.in); int i = sc.nextInt(); 上記のように書けば、System.in(標準入力)から数値の読み込みを…

AOJ 0000 QQ

AOJ

リンク AOJ 0000 QQ 方針 forの2重ループを使う練習です。 ソース public class Main { public static void main(String[] args) { for(int i = 1; i <= 9; i++){ for(int j = 1; j <= 9; j++){ System.out.println(i + "x" + j + "=" + i*j); } } } }

似非競技プログラマの戯言

はてなのトップコーダー部の人たちはもの凄く優秀で、 遠い世界の住人のように感じてしまいがちですが、 ぼくみたいな競技プログラマでも、TopCoder やら Codeforces に参加しているので、 敷居が高いと感じてしまって遠慮している人、大丈夫ですよ。何も怖…