摘要: 题意:给一棵节点数不超过10000的树,有三种操作: 1.询问a,b路径上最大的边权; 2.修改第i条边的边权; 3.将a->b路径上所有边的边权取反。解法: spoj375加强版,将点映射到线段树之后,需要用线段树的成段更新来支持操作三,其余的和spoj那题做法一样。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define N 10010 5 #define lson l,m,n<<1 6 #define rson m+1,r,n<<1|1 阅读全文
posted @ 2013-02-08 20:11 silver__bullet 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题意:给一棵树,节点数不超过10000,有两个操作:1.询问a,b路径上最长的边长。2.把第a条边长度改为b.p.s.人生中第一个树链剖分,尼玛debug了好久好久我擦。。。分析:轻重边路径剖分,把点都映射到线段树上搞之。。。具体的东西等我刷一刷题之后一起写个总结吧o(╯□╰)o 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #define N 10010 6 #define lson l,m,n<<1 7 #de 阅读全文
posted @ 2013-02-08 10:50 silver__bullet 阅读(165) 评论(0) 推荐(0) 编辑