hdu1010 擴充套件KMP求字串最小迴圈節

2021-07-11 16:12:26 字數 1671 閱讀 6607

problem:擴充套件kmp求字串最小迴圈節

analyse:

字串迴圈節等於字串最長字首字尾減去這個字首字尾中間交的長度。

/**********************jibancanyang**************************

*author* :jibancanyang

*created time* : 六 5/ 7 21:17:06 2016

*file name* : hdu1010.cpp

**code**:

***********************[email protected]**********************/

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef pair pii;

typedef

long

long ll;

typedef

unsigned

long

long ull;

vector

vi;

#define pr(x) cout << #x << ": " << x << " "

#define pl(x) cout << #x << ": " << x << endl;

#define pri(a) printf("%d\n",(a));

#define xx first

#define yy second

#define sa(n) scanf("%d", &(n))

#define sal(n) scanf("%lld", &(n))

#define sai(n) scanf("%i64d", &(n))

#define vep(c) for(decltype((c).begin() ) it = (c).begin(); it != (c).end(); it++)

const

int mod = int(1e9) + 7, inf = 0x3fffffff;

const

int maxn = 1e6 + 13;

char t[maxn], s[maxn];

int nexts[maxn], extend[maxn], slen, tlen;

//計算next陣列,儲存到next引數中。

void getextendnexts(void)

else nexts[i] = nexts[i - a];

}void getextend (void)

else extend[i] = nexts[i - a];

}int main(void)

}pri(ans);

}return

0;}

hdu 1010 深搜 回溯

也不想解釋了,只是做來找回做題的感覺。遲d出個這方面的小總結,越來越發現對所學知識作總結的重要性了 1010tempter of the bone include includeint n,m,time int xs,ys,xd,yd int direc 4 2 char str 11 11 boo...

HDU 1010 深度搜尋問題

杭電acm 1010 題意 能否在 恰好t步時 從s點到達 d點,每個點只能走一次,x是障礙。注意不能提前到達,必須在t步時到達 我用的深度搜尋dfs,最重要的是超時問題。這裡涉及到乙個剪枝,我在網上看到的奇偶剪枝。m n的 0,1 矩陣 0,1,0,1,0 1,0,1,0,1 0,1,0,1,0 ...

HDU1010 奇偶剪枝 DFS

第一次做剪枝的題目,剪枝,說實話研究的時間不短。好像沒什麼實質性的進展,遇到題目。絕對有會無從下手的感覺,剪枝越來越神奇了。hdu1010一道剪枝的經典題目,自己當初想用bfs過。提交了10幾遍wa,後來查了是剪枝最終死心了 ps 第一次寫剪枝題目,用了乙個模擬地圖來做奇偶性的判定條件進行剪枝,大牛...