AOJ

AOJ Vol.1 0115 Starship UAZ Advance

AOJ「Starship UAZ Advance」に挑戦。 方針 簡単のため,自機の座標を原点として考える 敵機の座標を(自機原点)とする バリアの3点を, , (自機原点)とする ベクトルを,バリア3点のベクトル()の和,で表す , , が定まる場合 or or ならば,ビームはバ…

AOJ Vol.1 0106 Discounts of Buckwheat

久々のAOJ「Discounts of Buckwheat」に挑戦。 方針 ナップザック問題なので動的計画法で解く。 ただし,200g,300g,500gのアイテムだけでなく,割引される最小単位である,200gx5袋,300gx4袋,500gx3袋の三つもそれぞれ取り扱いアイテムとして考える。

AOJ Vol.0 0026 Dropping Ink

「Dropping Ink」に挑戦。 方針 マス目の状態を表す10x10の配列を用意 空白マスをカウントする変数を用意 インクが滴下される座標と滴の大きさを取得 座標を中心に,滴の大きさに応じて配列の数値をインクリメント 同時にそのマスが初めてインクで染められる…

AOJ 0000 QQ

いくつかAOJの問題に挑戦したのでメモ。 Problem ID:0000の九九を表示する問題。 まずはベタに。 int main(){ int a,b; for(a=1; a<=9; a++) for(b=1; b<=9; b++) printf("%dx%d=%d\n", a, b, a*b); return 0; } #include しなくても通るっぽい。 ここから縮…

AOJ 0004 Simultaneous Equation

二元連立一次方程式の解を求めるプログラム。 行列式を使った解法を実装してみる。 行列式による解法 二元連立一次方程式 を行列式で表現する。 両辺に逆行列を掛けて よって これを元にコードを書く。 main(){ double a,b,c,d,e,f,t; for(;scanf("%lf%lf%lf…