刷題記錄2015 11 18

2021-07-07 08:14:36 字數 2327 閱讀 3958

補上

hdu3065:多組資料有點坑爹

hdu2222:模板,但是換了一種寫法,雖然之前那種寫法貌似複雜度也是o(n)的(不知道怎麼證明,但是感覺和kmp差不多).這種寫法構建了乙個trie圖,複雜度是很顯然的o(n)而且**還短一點,大概要快十分之一。

**如下:

hdu3065:

#include "cstdio"

#include "cstdlib"

#include "iostream"

#include "algorithm"

#include "cstring"

#include "queue"

using namespace std;

#define max_size 2000005

#define inf 0x3f3f3f3f

#define eps

#define mod

inline int get_int()

while(ch < '0' || ch > '9');

dowhile(ch >= '0' && ch <= '9');

return num * flag;

}class node

*root, *empty;

int n, length;

int num[1005];

char str[max_size], virus[1005][55];

inline node* new()

inline void build_trie()

temp -> count = i;

}}inline void build_acam()

}}inline void solve()

int to = str[i] - 'a';

while(!now -> next[to])

now = now -> fail;

now = now -> next[to];

for(node *temp = now; temp != root; temp = temp -> fail)

++num[temp -> count];

}for(int i = 1; i <= n; ++i)

if(num[i])

printf("%s: %d\n", virus[i], num[i]);

}inline void release(node *now)

int main()

return 0;

}

hdu2222:

#include "cstdio"

#include "cstdlib"

#include "iostream"

#include "algorithm"

#include "cstring"

#include "queue"

using namespace std;

#define max_size 10005

#define inf 0x3f3f3f3f

#define eps

#define mod

inline int get_int()

while(ch < '0' || ch > '9');

do while(ch >= '0' && ch <= '9');

return num * flag;

}class node

*root, *empty;

int length[max_size];

int m, n, t, ans;

char words[max_size][55], str[1000005];

inline node* new()

inline void build_trie()

temp -> count++; }}

inline void build_acam()

else

now -> next[i] = now -> fail -> next[i]; }}

inline void solve() }}

int main()

build_trie();

build_acam();

scanf("%s", str);

m = strlen(str);

for(int i = 0; i < m; ++i)

str[i] -= 'a';

solve();

printf("%d\n", ans);

} return 0;

}

OI刷題記錄

2014 4 18 poj3264 bzoj1699 balanced lineup rmq 2014 4 19 bzoj1012 jsoi2008 最大數maxnumber noi2004 鬱悶的出納員 bzoj3224 tyvj 1728 普通平衡樹 2014 4 20 bzoj1862 105...

面試刷題記錄

寫一段 判斷乙個包括 的表示式是否合法 注意看樣例的合法規則。給定乙個表示式a,請返回乙個bool值,代表它是否合法。測試樣例 a b 5 4 返回 true 測試樣例 a b 5 4 返回 false include vector include iostream using namespace ...

刷題記錄 2015 11 14

現在每天做的題都記錄一下,免得不知道自己在幹什麼。poj2406 用next陣列的定義求迴圈節 poj3261 字尾陣列 題 spoj705 同上,這題我wa了幾次,結果發現 我以為字串只有大寫字母,其實有小寫。如下 poj2406 author duyixian date 2015 11 14 1...