POJ1035文字列

この質問は、あなたが解決するためにプルーン暴力を追加することができますので、データ1E4の範囲を見ることが第一の主題です。

キーは、文字列の長さを分析することで、位相差は、変換辞書に長さ1を等しくすることができます。

これに基づき、一致する文字列、同じ文字ANS ++の長さとしてビューのマッチング、。

ポイント分析されている変換することができます。

最後に、出力形式と要件の点に注意してください。

 

#include <cstdioを> 
する#include <CStringの> 
する#include <cmath> 
の#include <CCTYPE> 
の#include <iostreamの> 
する#include <アルゴリズム> 
の#include <地図> 
の#include < セット > 
の#include <ベクトル> 
の#include < ストリング > 
書式#include <スタック> 
の#include <キュー> 

typedefの長い 長いLL。
符号なしのtypedef 長い 長いULL。
使用して 名前空間はstdを、

//BOOL SQRT(LLのN){リターン(LL)SQRT(N)* SQRT(N)== N。} 
CONST  ダブル PI = ACOS( - 1.0)、ESP = 1E- 10 constの LL INF = 99999999999999 ;
const  int型 INF = 999999999、MAXN = 1E4 + 24 M、。
// ベクトル<整数> LEN1、LEN2。
ベクトル< 文字列 > V1、V2; 

INT メイン()
{ 
    // freopenは( "in.txt"、 "R"、STDIN)。
    // freopenは( "out.txtを"、 "W"、STDOUT)。
    しばらく(CIN >>ブレイク
        v1.push_back(M)。// len1.push_back(m.size()); 
    }
     一方(CIN >> A){
         場合(A == " "ブレーク
        v2.push_back(A)。// len2.push_back(a.size()); 
    }
     int型のx = v1.size()、Y = )(v2.size。
    以下のためにint型 i = 0 ; iはyと<; iは++ ){
         // !IF(見つける(v1.begin()、v1.end()、V2 [I]) - v1.end()= v1.size() )COUT << V2 [i]は<< "正しいです"。
        BOOLフラグ= 0 int型のk = 0 ; K <X; ++ k個){
             場合(V1が[K] == V2 [i])と{フラグ= 1ブレーク;} 
        } 
        場合(フラグ){COUT << V2 [i]は<< " 正しい\ nは"続け; }
         { 
            COUT << V2 [i]は<< " " INTのL =のV2 [i]を.size()。
            以下のためのint型 J = 0 ; jの<X; J ++){
                 int型 H = V1 [J] .size()。
                int型 ANS = 0 ;
                もし(L == H + 1 ){
                     ためINT、M = 0、D = 0 ; M <Lであり; m ++ 場合(V1 [J] [D] == V2 [i]は[M]){ANS ++。D ++ ; } 
                } 
                そう であれば(L + 1 ==の時間){
                     ためINT、M = 0、D = 0 ; M <Hであり; m ++ もし(V1 [J] [M] == V2 [i]は[D]){ANS ++。D ++ ; } 
                } 
                そう であれば(1- ==の{H)
                     のためのint型、M = 0、D = 0 ; M <Lであり; m ++、D ++ 場合(V1 [J] [D] == V2 [i]は[M])ANS ++ ; 
                } 
                もし、((L> = H)&&(ANS == L - 1))COUT << "  " << V1 [J]。
                もし((L <H)&&(ANS == 1))COUT << "  " << V1 [J]。"" ); 
    } 

    戻り 0 
} 
/ * 
    入力:
    出力:
    モデリング:
    方法:
    複雑:
    要約:
* /
コードの表示

 

おすすめ

転載: www.cnblogs.com/000what/p/11546710.html