摘要:
题意 一颗$n(2\le n \le10^5)$个结点的树,树上的每条边有一个边权$w(1\le w b(x); for (int i = 19; ~i; i) { if (!a[root][b[i]]) a[root][b[i]] = ++tot; root = a[root][b[i]]; } 阅读全文
摘要:
题意 我们称一个正整数N$(len(N) st; void Inite() { tot = 0; } void Insert(char s) { int n = strlen(s); int now = 0; rep(i, 0, n) { int id = s[i] '0'; if (!a[now] 阅读全文
摘要:
ps:非常非常重要的一个条件 m - n <= 20,考虑图的生成树,那么(u,v)之间的最短路上的边有两种情况,一是最短路不经过非生成树的边,二是经过非生成树的边。又非生成树的边只有20条,则连接的点最多有40个,所以对这40个点分别跑一次DJS,然后取最小值就行了。(换言之:如果最短路经过非生成 阅读全文