給你乙個原串
乙個匹配串
特殊的是,這個匹配串的每一位可能可以匹配不同的字母
問你可以匹配的位置
今天早上做51nod模糊搜尋的時候看到了ta
ngjz
t an
gj
z的乙個黑科技
於是去學了一下
像這種奇怪的匹配方法是不可以用kmp解決的
但是可以用一種壓位的方法做到nm
64 nm64
具體看這裡,我就不多說了
然後這是乙個裸題
code:
#include
#include
#include
#include
#include
using
namespace
std;
const
int n=2000005;
const
int nn=300;
const
int m=505;
int id[n],cnt=0;
bitset
f[2],g[nn];
void prepare ()
char ss[n],ss1[n];
int n,m;
int len;
void shiftand (int n,int m)
now^=1;
}if (tf==false) printf("null\n");
}int main()
}shiftand(n,m);
gets(ss);
}return
0;}
51nod1532 帶可選字元的多字串匹配
有乙個文字串,它的長度為m 1 m 2000000 現在想找出其中所有的符合特定模式的子串位置。符合特定模式是指,該子串的長度為n 1 n 500 並且第i個字元需要在給定的字元集合si中。因此,描述這一特定模式,共需要s1,s2,sn這n個字元集合。每個集合的大小都在1 62之間,其中的字元只為數...
多位元組字串與寬字串的轉換
多位元組字串與寬字串的轉換可使用c api者win32 api.c api mbstowcs,wcstombs win32 api multibytetowidechar,widechartomultibyte 下面著重介紹win32 api的用法,c api的用法較為簡單可參照win32 api。...
多位元組字串與寬字串的轉換
多位元組字串與寬字串的轉換 多位元組字串與寬字串的轉換可使用c api者win32 api.c api mbstowcs,wcstombs win32 api multibytetowidechar,widechartomultibyte 下面著重介紹win32 api的用法,c api的用法較為簡...