2008-05-28から1日間の記事一覧

SRM 166 DIV2 Level One - 三角形の組合せ

ようやくまともな問題。ま、一番簡単なラインを進んでるから当然か。 工場で働いてるんだけど、毎日毎日金属のスクラップが出るので、そいつを利用して三角形のピクチャーフレームを作りたいと思ってる(センスねぇな)金属片の長さが与えられるので、三角形の…

SRM 165 DIV2 Level One - イギリスの旧硬貨

イギリスの旧硬貨に関する問題。 一番小さい単位がペンスで、12ペンスで1シリング、20ペンスで1ポンド。ペンスを変換してコインの量を最適化せよと。 ややこしいシステムだな。今は100ペンス = 1ポンドらしい。 回答は、前に出てきた時計の問題と変わらず。 …

SRM 164 DIV2 Level One - 右揃え

テキストのフォーマット問題。 全ての長さが同じになるように右揃えにしなさいと。 #include <string> #include <vector> #include <sstream> #include <iomanip> #include <algorithm> using namespace std; #define foreach(bind, item) \ for (typeof ((item).begin()) bind = (item).begin(), __ie = (</algorithm></iomanip></sstream></vector></string>…

SRM 163 DIV2 Level One - シャクトリムシのお食事

英語で泣きそうになるな。 シャクトリムシは結構面白い動きをして、シャクトリムシ - Wikipediaこんなん。 日本語で尺取虫、英語でinchwormと言う位なので、長さを計る虫。という意味は変わらないらしい。 枝に等間隔に葉っぱが付いてる。シャクトリムシも等…

SRM 162 DIV2 Level One - 最小公倍数

C++ではあんまり解きたくない問題。 4,5,6とか範囲が与えられるので、最小公倍数を求める。 #include <vector> using namespace std; class LCMRange { public: static int lcm(int first, int last) { vector<int> numbers; int acc = 1; for (int i = first; i <= last;</int></vector>…

SRM 161 DIV2 Level One

簡単。 カードを配るだけ。ただし、10枚カードがあって、3人に配る場合は3枚づつ。"1231231234"を配ると{"111", "222", "333"} 普段quotient使ってるから気付かないけど、割って掛けたら違う数が出てくるっておかしな話だ。 10 / 3 * 3 = 9 10 * 3 / 3 = 10 …

SRM 160 DIV2 Level One

C++のfindってメンドイ。数字を覚えるのに、1〜0までで"TRADINGFEW"とかテーブルを作っておいて、"LGXWEV"で709とする。という変な暗記法。暗号として使ったほうが効果的だと思う。 #include <string> #include <algorithm> using namespace std; template <class T, class U> int find_index(T se</class></algorithm></string>…