Hatena::Grouptopcoder

TopCoder煮ブログ

本家ブログはこっち → http://d.hatena.ne.jp/nitoyon/

2008-10-12DIV1 Easy 集中特訓

ForbiddenStrings (SRM412 DIV1 Easy)

| 12:34 | ForbiddenStrings (SRM412 DIV1 Easy) - TopCoder煮ブログ を含むブックマーク はてなブックマーク - ForbiddenStrings (SRM412 DIV1 Easy) - TopCoder煮ブログ

違うアルファベットが何個続いているかを覚えておいて数だけを計算。これも DP か。早くはないが、一発 OK。

ArithmeticProgression (SRM413 DIV1 Easy)

| 13:40 | ArithmeticProgression (SRM413 DIV1 Easy) - TopCoder煮ブログ を含むブックマーク はてなブックマーク - ArithmeticProgression (SRM413 DIV1 Easy) - TopCoder煮ブログ

上界と下界を順番に調べていって、範囲が不正なら -1 とする。ほとんどできていたのに条件を1つ忘れて、System Test で撃沈…。細かいミスが多いのをなんとかせねば。

ShipLoading (SRM415 DIV1 Easy)

| 20:12 | ShipLoading (SRM415 DIV1 Easy) - TopCoder煮ブログ を含むブックマーク はてなブックマーク - ShipLoading (SRM415 DIV1 Easy) - TopCoder煮ブログ

sort して upper_bound を使って。C++ 一位の人とほとんど同じコードだった。嬉しい。<algorithm> 便利!

std::accumulate

| 20:19 | std::accumulate - TopCoder煮ブログ を含むブックマーク はてなブックマーク - std::accumulate - TopCoder煮ブログ

コンテナの値を加算するには std::accumulate が便利。numeric の include も忘れずに。

使用前:

// vec は vector<string> とする
string s = ""
for(int i = 0; i < vec.size(); i++){
    s += vec[i];
}

使用後:

#include <numeric>

string s = accumulate(vec.begin(), vec.end(), string());
// 第3引数は初期値