sdut oj 迷之好奇(字典樹)

2021-09-25 22:09:01 字數 1293 閱讀 1762

problem description

ff得到了乙個有n個數字的集合。不要問我為什麼,有錢,任性。

ff很好奇的想知道,對於數字x,集合中有多少個數字可以在x前面新增任意數字得到。

如,x = 123,則在x前面新增數字可以得到4123,5123等。

input

多組輸入。

對於每組資料

首先輸入n(1<= n <= 100000)。

接下來n行。每行乙個數字y(1 <= y <= 100000)代表集合中的元素。

接下來一行輸入m(1 <= m <= 100000),代表有m次詢問。

接下來的m行。

每行乙個正整數x(1 <= x <= 100000)。

output

對於每組資料,輸出乙個數字代表答案。

sample input

312345

66666

12356345

12345

356sample output10

1

#include

#include

#include

typedef

struct node

node;

node t[

1000000];

int top;

node *

creat()

p->id=0;

p->f=0;

return p;

}void

insertt

(node *root,

char s)

else

p->id++;}

p->f++;}

intcheck

(node *t,

char s)

else

}int k=p->id;

if(p->f!=0)

k-=p->f;

return k;

}int

main()

s[len]

='\0'

;insertt

(t,s);}

scanf

("%d"

,&m)

;for

(i=0

; i) s[len]

='\0'

;int k=

check

(t,s)

;printf

("%d\n"

,k);}}

return0;

}

SDUT OJ 迷之好奇 (字典樹

time limit 2000 ms memory limit 65536 kib submit statistic problem description ff得到了乙個有n個數字的集合。不要問我為什麼,有錢,任性。ff很好奇的想知道,對於數字x,集合中有多少個數字可以在x前面新增任意數字得到。如...

SDUT 3039 迷之好奇 字典樹

題目鏈結 給定n個數字的集合,對於數字x,集合中有多少個數字在x前面新增任意數字可以得到。首先先將輸入的字元逆序,這樣就可以轉化為字首的問題。由測試資料可以看出,當要查詢的x為集合中的某一數字時,是不進行計數的。將數字逆序構建字典樹,cnt用來計算字元在字典樹特定位置中出現的次數,在最後的位置cnt...

SDUT 迷之好奇

include include int top struct node st 5001000 int creat void insertt int root,char s st root flag root st root next t int cmp char s,int root root st...