字串與二進位制Trie樹的簡單模板

2021-08-27 03:40:47 字數 1506 閱讀 9611

description

給出n個單詞組成的字典(可能由相同的單詞),請你完成下列任務:

任務1、把n個單詞去重後按字典序由小到大後輸出。

任務2、給出m個詢問,每次詢問乙個單詞是否在字典中存在,如果存在,輸出該單詞在字典中出現的次數。

input

第一行為n和m。接下來的n行,每行乙個單詞。中間空一行。在接下來的m行,每行乙個單詞,表示乙個詢問。

output

開始的n行為任務1的輸出結果。空一行後輸出m行,每行乙個整數,表示詢問的結果(不存在,則輸出0)。

#include#include#include#includeusing namespace std;

const int maxn=100005;

int val[maxn*52];

int ch[maxn][52];

int rt=0,np=0;

char s[55];

int idx(char c)

char idc(int x)

void insert(int &now,char *s,int i)

insert(ch[now][idx(s[i])],s,i+1);

}void dfs(int now,int i)

for(int d=0;d<52;d++) }

}int query(int now,char *s)

return val[now];

}int main()

dfs(rt,0); putchar('\n');

while(m--)

return 0;

}

題目描述

給出n個非負整數a[1]..a[n],程式設計回答詢問:x:詢問 max 的值。

輸入第一行為整數n。第二行為n個非負整數,表示a[1],a[2],…,a[n]。第三行為整數m。之後的m行,每行表示一種詢問:x

輸出對於每個詢問,給出你的回答。

#include#include#includeusing namespace std;

typedef unsigned long long ull;

const int maxn=100005;

int ch[maxn*64][2];

int rt=0,np=0;

char c;

void scan(int &x)

void scan(ull &x)

char num[30];int ct;

void print(ull x)

void insert(int &now,ull x,int i)

ull query(int now,ull x,int i)

int main()

scan(m);

while(m--)

return 0;

}

字串與二進位制

單引號字串會被表示成整數值列表。c返回字元 c 的整數編碼。下面這個例子用於解析字元列表表示法,該表示法用於表示乙個任意的有符號的十進位制資料。defmodule parse do def number tail do number digits tail,0 1 enddef number tai...

計算二進位制字串

4646598ce4f12f0f484da18acbd83813.png en resource database 11364 1 1226f6e4e21ed6df41356aa6e9e857c0.png en resource database 11366 1 遇到難度較大的題目的解題步驟 1.找...

計算二進位制字串

題目描述 給定乙個字串 s,計算具有相同數量0和1的非空 連續 子字串的數量,並且這些子字串中的所有0和所有1都是組合在一起的。重複出現的子串要計算它們出現的次數。示例 1 輸入 00110011 輸出 6 解釋 有6個子串具有相同數量的連續1和0 0011 01 1100 10 0011 和 01...