文系プログラマーのプログラミング備忘録

Java、競プロ、数学などについて書いてます

AIZU ONLINE JUDGE

Internet Protocol Address [ AIZU ONLINE JUDGE 2889 ]

judge.u-aizu.ac.jp 問題 省略(リンク先参照) 考察 与えられる文字列の長さは最大でも 12 なので、ピリオドの挿入位置の全探索が可能です。 挿入位置が決まると、文字列は 4 つに分割されることになります。 分割後の 4 つの文字列について、それぞれ以下…

Right triangle [ AIZU ONLINE JUDGE 2897 ]

judge.u-aizu.ac.jp 問題 省略(リンク先参照) 考察 操作1をおこなった後の図形は、半径b・高さaの「円錐」です。「二等辺三角形」ではありません。 円錐には奥行きがあります。また、制約には a<b とあります。 よって、操作2でこの円錐をy軸周りに回転さ…

Bombs Chain [ AIZU ONLINE JUDGE 0071 ]

judge.u-aizu.ac.jp 問題 省略(リンク先参照) 考察 幅優先探索で解きます。 詳しい実装方法は以下のコードをご覧ください。 コード void solve (FastScanner in, PrintWriter out, Methods ms) { int n = in.nextInt(); for (int i=0; i

Debt Hell [AIZU ONLINE JUDGE 0007]

judge.u-aizu.ac.jp 問題 100000 に以下の操作を n 回おこなった後の値を求めよ。 ・1.05倍し、1000未満を切り上げる 考察 まず 1.05倍する 操作についてですが、「v * 1.05」とするよりも「v * 105 / 100」としたほうが誤差が少なくなります。 次に 1000 未…

Dice I, II, III, IV [ AIZU ONLINE JUDGE ITP1_11 ]

AIZU ONLINE JUDGE の Introduction to Programming I の最後に構えている問題、Dice I, II, III, IV を全部まとめて解いてしまいたいと思います。一見すると何やらややこしそうですが、実際にはオブジェクト指向・全探索と、プログラミングの基本が詰まって…

The Number of Windows [ AIZU ONLINE JUDGE DSL_3_C ]

judge.u-aizu.ac.jp 問題 長さ N の数列と整数 X(※Long型)が与えられる。 数列の部分列のうち、和が X 以下であるようなものの個数を求めよ。 考察 しゃくとり法の問題です。例によって詳細は省略します。 今回は自分で一から実装するのではなく、以下のペ…

Kannondou [AIZU ONLINE JUDGE 0168]

judge.u-aizu.ac.jp 動的計画法の問題です。 ・dp[i] = i 段目まで上るときの上り方の総数 とします。 0段目、1段目まで上るときの上り方の総数は、明らかに 1 です。 ・dp[0] = 1 ・dp[1] = 1 2段目まで上るときの上り方の総数は、2 です。 0,1,2 と上る上…

Binary Search [ AIZU ONLINE JUDGE ALDS1_4_B ]

judge.u-aizu.ac.jp 数列 S と数列 T が与えられます。 数列 T のそれぞれの要素のうち、数列 S に含まれているものの個数を求める問題です。 ごく普通の二分探索の問題です。本来であれば自作の二分探索関数を書いて解くべきなのでしょうけれど、ここは遠慮…

Exhaustive Search [ AIZU ONLINE JUDGE ALDS1_5_A ]

judge.u-aizu.ac.jp 数列 A と m 個の数値が与えられる。m 個の数値のそれぞれについて、数列 A のいくつかの要素を足し合わせて作ることができるなら yes 、作れないなら no を出力せよという問題です。 この問題、いろいろな解き方があると思うんですけど…

Deque [ AIZU ONLINE JUDGE ITP2_1_B ]

judge.u-aizu.ac.jp LinkedList で解こうとしたら思い切り TLE を喰らいました。他の方の解答を見ると全員が自作のDequeクラスを作って解いているので、つまりはそういうことなんだと思います。 import java.util.*; class Main { static Scanner sc = new S…

Matrix Multiplication [ AIZU ONLINE JUDGE ITP1_7_D ]

judge.u-aizu.ac.jp 行列が2つ与えられるので、その積となる行列を求めよという問題です。 この問題のために行列同士の積の求め方を習得しましたが、相変わらず行列自体については何もわかっていません。それはともかくとして、いい機会だったので、次に行列…

Structured Programming [ AIZU ONLINE JUDGE ITP1_5_D ]

judge.u-aizu.ac.jp goto文で書かれたC++言語のプログラムを読んで、同じ動作をするプログラムを書け、ただしgoto文は使うな、という問題です。 C++が読めず、goto文もよくわからないので、このプログラムが何をやっているのか全然わかりません。他の方の提…