しかし、もう一つの壊れたキーボード

TEST2秒あたりの制限時間
test256メガバイトあたりのメモリ制限
標準入力:入力
出力:標準出力


最近、ノルウェーは、文字列s = S1S2 ... SN n個の小文字からなるラテン文字を見つけました。彼のタイピング速度を向上させるための練習として、彼は文字列sのすべての部分文字列を入力することを決めました。はい、すべてのn(n + 1)は/それらの2!
複数のサブストリングは、非空の文字列X = S [... B] =ササ+ 1 ... SB(1≤a≤b≤n)です。たとえば、「オート」と「トン」「オートマトン」の部分文字列です。
まもなく運動開始後、ノルゲは彼のキーボードが壊れていたことに気づき、すなわち、彼は唯一のラテン文字に26のC1、C2、...、ckのうちk個使用することができます
。その後に、ノルウェーは、文字列sのどのように多くの部分文字列に興味を持つようになりました彼はまだ彼の壊れたキーボードを使って入力することができます。この番号を見つけるために彼を助けます。


入力
文字列sの長さとキーボードでまだ利用できるラテン文字の数-最初の行は、二つのスペースで区切られた整数nとk(1≤n≤2⋅105、1≤k≤26)を含みます。
2行目は、sが正確にn小文字のラテン文字からなる文字列が含まれています。
三行目は、k個のスペースで区切られた個別の小文字のラテン文字のC1、C2、...は、キーボード上のまだ使用可能文字をCK-含まれています。
出力は
のみ利用可能文字C1、C2、...、CKを使って入力することができ、Sのサブストリングの数-単一番号を印刷します。


実施例
インプット
7 2
abacaba
B
出力
12
入力
10 3
sadfaasdda
広告F
出力
21
入力
7 1
AAAAAAAの
Bの
出力
0


質問の意味:
文字列が与えられ、その後、k個の文字を与え、k個の予約内の文字列の一部のみ、その後、どのように多くの部分文字列尋ねます。
Cの問題のDIV3、だけでなく、簡単な質問(ちょうどタイトルを読んで)。そして、私はどのように多くの異なるB部分文字列を削除した後、文字列以外のk個の文字列を求めている問題の意味を理解していない始めました。直接スローテンプレートまで、その後、地元の答えは適切ではないと実行する時間を見つけました。発見後5分程度の研究ので、オリジナルのサブストリングと、各パーツを求めて(でもタイトル方程式が出ました!!!)である
英語は私の.jpg殺す
ので、戦略が直接その後、どのくらいの連続文字kを見つけることです式に投げ込まれ、その後うまく合計に投げ込ま


コード

#include <ビット/ STDC ++ H> 
名前空間STDを使用して、
長い長いLLのtypedef。
整数N、K。
文字列s、S1; 
INT [105]。
LL和= 0、NUM = 0。

INTメイン(){ 
	CIN >> N >> K。
	cinを>>秒; 
	一方、(K - ){ 
		CIN >> S1。
		[S1 [0] - [A '] = 1。
	}	 
	ため(INT iは= 0; I <= N; I ++){ 
		IF([S [I] - [A '] == 1){ 
			NUM ++。
		}他{ 
			和=和+ NUM *(NUM + 1)/ 2。
			NUM = 0; 
		} 
	} 
	COUT <<和。
	0を返します。
}

  


----------------

CSDNリンクします。https://blog.csdn.net/weixin_43880627/article/details/103622128

おすすめ

転載: www.cnblogs.com/jjmmboom/p/12075385.html