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...