C/C++

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…

Online Judge

算数オリンピックの記事からいろいろ辿って「http://rose.u-aizu.ac.jp/onlinejudge/index.jsp」に着いた。 問題が豊富でおもしろそう。始めてみよう。

CppUnitの使い方

メインルーチン #include <cppunit/ui/text/TestRunner.h> #include <cppunit/TextOutputter.h> #include <cppunit/extensions/TestFactoryRegistry.h> int main(int argc, char* argv[]) { CppUnit::TextUi::TestRunner runner; runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); CppUnit::Outputter* …</cppunit/extensions/testfactoryregistry.h></cppunit/textoutputter.h></cppunit/ui/text/testrunner.h>