phone list
#includeusingnamespace
std;
const
int n=1e5+5
;int t,n,tot,c[n][10
];char s[10
];bool
ans,bo[n];
void
clear()
bool
insert()
bo[u]=1
;
return
flag;
}int
main()
printf(
"%s\n
",ans?"
no":"
yes"
); }
}
the xor largest pair
將$a[i]$看作長度為$32$的二進位制$01$串,插入$trie$字典樹。
對於$a[i]$對應的$32$位二進位制串,我們從高位到低位,盡量沿著「與$a[i]$當前位相反的字元指標」向下訪問。
根據$xor$運算「相同得0,不同得1」的性質,即可找出與$a[i]$做$xor$運算結果最大的$a[j]$。
#includeusingnamespace
std;
const
int o=1e5*30
;int n,x,tot,ans,c[o][2
];void insert(int
x) }
int cal(int
x)
return
res;
}int
main()
printf("%d
",ans);
}
背單詞
將所有字串倒著插入字典樹,使字尾變為字首。
貪心:不能出現情況1。如果$s1$為$s$的字尾,那麼$s1$的序號必須小於$s$的序號。
要使結點的序號減去其兒子的序號最小,我們從小到大遍歷每個結點的子樹即可。
#includeusingnamespace
std;
const
int n=510000+5
;int n,tot,cnt,w[n],fro[n],siz[n],fa[n],c[n][26
];long
long
ans;
bool
bo[n];
char
s[n];
struct edgea[n];
vector
vi[n];
void add(int x,int
y) void insert(int
x) bo[u]=1,w[x]=u;
}void dfs(int
u) sort(vi[u].begin(),vi[u].end());
int num=0
;
for(int i=0;i)
ans+=num+1,num+=vi[u][i];
}int
main()
for(int i=1;i<=n;i++)
dfs(0);
printf(
"%lld
",ans);
}
一本通學習筆記 字典樹與 0 1 Trie
字典樹中根到每個結點對應原串集合的乙個字首,這個字首由路徑上所有轉移邊對應的字母構成。我們可以對每個結點維護一些需要的資訊,這樣即可以去做很多事情。include using namespace std namespace trie node root node pool 1000005 int i...
佇列(一本通)
這道題重點是關係的轉換和初始化 include include include includeusing namespace std int a 101 記錄接著的的那個節點 int n,m int main int ans void bfs int x,int y int main cout in...
情感修煉一本通
實踐準則 經驗親密關係構成要素 了解 關心 相互依賴性 相互一致性 信任以及承諾 親密的伴侶彼此間有著廣泛而私密的了解。他們熟知彼此的經歷 愛好 情感和心願,而且一般不會把這些資訊透露給其他人。親密的伴侶關心對方,彼此能從對方身上感受到更多的關愛。如果人們認為自己的伴侶了解 理解並欣賞自己,其親密程...