time limit: 2000 ms memory limit: 65536 kib
submit
statistic
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
3sample output12345
66666
12356345
12345
356
101
#include using namespace std;
struct node
;struct node a[1000000];
int top;
struct node *create_empty( )
struct node *insert ( struct node *root, int s )
p->data--; //最高位次數減一,去掉本身
return root;
}int find( struct node *root, int s )
return p->data;
}int main()
cin >> m;
while( m-- )
}return 0;
}
sdut oj 迷之好奇(字典樹)
problem description ff得到了乙個有n個數字的集合。不要問我為什麼,有錢,任性。ff很好奇的想知道,對於數字x,集合中有多少個數字可以在x前面新增任意數字得到。如,x 123,則在x前面新增數字可以得到4123,5123等。input 多組輸入。對於每組資料 首先輸入n 1 n ...
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...