Home > TopCoder > TopCoder SRM 428

TopCoder SRM 428 このエントリーを含むはてなブックマーク

Place: 291
Score: 235.64(250)
Rating: 1895 → 1869
最近さがりっぱなしです.がっかり.

TopCoder SRM 428, DIV I, 250, The Lucky String

Overview

文字列の中に連続する文字がなければLucky Stringと定義し,与えられた文字列を並び替えてできるLucky Stringの数を調べる.

Comment

next_permutationの力をかりた.しかしその判断の速度の早さで順位がついた気がする今日この頃.それもnext_permutationって戻る時に返り値が違うんですね.はじめて知りました.

001: #include <string>
002: #include <algorithm>
003: using namespace std;
004:
005: struct TheLuckyString {
006:     int count(string s) {
007:         sort(s.begin(), s.end());
008:         int cnt = 0;
009:         do {
010:             int flg = 1;
011:             for (int i = 1; i < s.size(); i++)
012:              if (s[i - 1] == s[i]) flg = 0;
013:             cnt += flg;
014:         } while (next_permutation(s.begin(), s.end()));
015:         return cnt;
016:     }
017: };

TopCoder SRM 428, DIV I, 500, The Long Palindrome

Overview

ある文字数以下である種類数以下のアルファベットを使った回文の種類数を答えよ.

Comment

わからない\(^o^)/Σ[k=1..n]k^aを高速に計算するプログラムを書いて満足したところで終了しました.しかしこれはあまりにも面倒なので別の方法があるんだろうけど相変わらず他の人のコードが読めないという…orz.

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://imoz.jp/2008/12/topcoder-srm-428/trackback/
Listed below are links to weblogs that reference
TopCoder SRM 428 from 超現実いもす(imos)の日記

Home > TopCoder > TopCoder SRM 428

Search
Feeds
Meta

Return to page top