2012-03-30 10 views
0

オンされる毎に sの集合S = {S 、...、S、メートル} iはは、アルファベット{0,1} ,?上長さkの文字列です。私は、以下の決定問題を解く効率的なアルゴリズムを探していますDecisionproblemストリング

は:
はそれぞれ1 ≤ < B ≤ kに対して、文字列s Sで S。T.があること、それ本当ですS I(A)= 0とs Iが(B)= 1またはsがが(A)= 1及びsが(b)はS = 0、が(A)であります文字列sのa番目の文字 i

私はmの部分線時間アルゴリズムを探しています。だから、O(\ sqrt(m)f(k))のようなものが目標になります。

+2

[CSTheory.SE](http://cstheory.stackexchange.com)とは異なり、StackOverflowは[MathJax](http://www.mathjax.org)をサポートしていません。 /)。 : – MrGomez

+0

はい、書式は全く読んでも痛いです – DRVic

+0

私はそれを変更しました。申し訳ありませんが、SOがMathJaxをサポートしていないことを認識していませんでした – user695652

答えて

0

以前のオフライン処理が許可されていない限り、線形時間より短い時間では実行できません。

基本的に、あなたの基準を満たす最初の文字列が、最後に考えられる文字列になります。そして、あなたはすべてのm-1を最初に考慮する必要があります。

+0

これはm * kに比例する時間で実行されますか? – user695652

+0

変更された質問に対する回答が変更されました。サブ線形ではなくサブ二次的なものを求めた。 – DRVic

0

簡単。 (...、0 == 0x11 == 0x2)あなたの文字のスペースをビットフィールド、そしてSで、各文字列の最初のN文字を取り、その変形の表現、0x3,...に対するXOR合計を追加し、それがゼロに評価された場合参照してください。

O(n)よりも高速なトラバーサルを実現するには、バイナリ検索ツリーまたはヒープ(O(lg n)フェッチ)またはハッシュ(O(1)フェッチ)を形成するためにこれを使用します。 Sのソートが保証されている場合は、さらに簡単になります。

少なくとも、私はあなたの質問を正しく理解しています。有限の数学的複雑さと校正を用いた、より良い、より理論的な結果のためには、Math.SEまたはCSTheory.SEが行き先です。

+0

これは私が答えたものとは異なる問題に答えるものです。OPが実際に意味していたのはどれですか... – DRVic