您的任務是編寫乙個程式,該程式給定子字串的大小n,文字nc中可能出現的不同字元的數目以及文字本身,確定出現在字串中的大小為n的不同子字串的數目。文字。
輸入項輸入的第一行由兩個數字n和nc組成,它們之間正好隔開乙個空格。這之後是進行搜尋的文字。您可以假設由可能的字符集形成的最大子字串數不超過1600萬。
輸出量程式應僅輸出乙個整數,該整數與在給定文字中找到的大小為n的不同子字串的數量相對應。
sample input
3 4daababac
sample output
5
#include
#include
#include
using
namespace std;
const
int maxnum=
20000007
;string ch;
bool lage[maxnum]
;int hasharray[
256]
;int
main()
}int ans=0;
for(
int i=
0;i<=len-n;i++)if
(!lage[sum])}
cout
}
poj 折半搜尋
題意 給你乙個含有n n 1000 個數的數列,問這個數列中是否存在四個不同的數a,b,c,d,使a b c d 若存在則輸出最大的d 思路 完全暴力的話o n 4 會t,可以考慮雙向搜尋,公式變形為a b d c 分別列舉a b和c d,將值和下標存在結構體中,再二分查詢即可 include in...
廣度搜尋 POJ 1753
題意 乙個4 4的棋盤,每個格仔放著乙個棋子。棋子一面是白色,一面是黑色。一次操作可以將某乙個格仔以及上下左右共5個格仔的棋子都翻過來,即白色變黑色,黑色變白色。現在給出一種棋盤狀態,問最少需要幾次操作可以將棋盤全部變為同種顏色。輸入 sample input bwwb bbwb bwwb bwww...
poj 1979 迷宮搜尋
題意 區域有兩種標記,點和井號,不能觸碰井號。給定乙個起始點,問從其出發最多能覆蓋多大面積。思路 搜尋,深搜or廣搜 廣搜 include include define n 23 char s n n int flag n n q n n 2 flag為標記陣列,搜尋到的區域標記為1 int rou...