摘要:PS:在树中:dis(u,v)=dis(root,v)+dis(root,u)-2*dis(root,lca(u,v)); 这个性质可以写很多题。vectormp[N];int dp[N][LN];int dep[N];void dfs(int u,int fa,int t) //dfs(roo...
阅读全文
摘要:******************************************** */#include #include #include #include #include #include #include #include #include #include #include #inc...
阅读全文
摘要:这题只是询问 一组u,v的LCA但是要判断root 是哪个。在线做法: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define N 1111110 #defi...
阅读全文
摘要:题目大意: 给一棵树root=1的树: 给一些操作:u v 的路径所有节点的node + val; 最后m个询问:u 节点(包括u) sum%mod 是多少。 LCA + RMQ;我们每次mark ,u , v, +=val;fa=lca[u,v])-=val;fa[fa]-=val你会...
阅读全文
摘要:1: UVa 10887 - Concatenation of Languages map 可以做 ,但是输入实在恶心,有空串之类的HASH模板: int Hash(char *s){ int seed=131,sum=0; while (*s) sum=sum*seed+(*s++); retu...
阅读全文
摘要:思路类似快速米,为了防止数相乘超出long long的范围。复杂度再加一个log(n);很实用的东西:ll mut(ll a,ll b){ ll res=0; while (b) { if (b&1) res=(res+a)%p; a=(a+a)%p; b>>=1; } return res;}ll...
阅读全文
摘要:保存模板: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 typedef long long ll; 9 using namespace std; 10 #define N 100...
阅读全文