瘋狂搜尋( POJ 1200) 雜湊

2021-10-01 18:39:58 字數 689 閱讀 7327

您的任務是編寫乙個程式,該程式給定子字串的大小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...