AOJ

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); } } } }