题目链接:hdu 4897 Little Devil I 题目大意:给定一棵树,每条边有黑白两种颜色,初始都是白色,现在有三种操作: 1 u v:u到v路径上的边都取成相反的颜色2 u v:u到v路径上相邻的边都取成相反的颜色(相邻即仅有一个节点在路径上)3 u v:查询u到v路径上有多少个黑色边 解题思路:树链剖分,用两个线段W和L维护,W对应的是每条的黑白情况,L表示的是每个节点
题目链接:spoj 375. Query on a tree 题目大意: poj 3237的简化版,用同一份代码都能过。 解题思路:略。 #include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 10005;const int INF = 0x3f3
题目链接:hdu 3966 Aragorn's Story 题目大意:给定一个棵树,然后三种操作 Q x:查询节点x的值I x y w:节点x到y这条路径上所有节点的值增加wD x y w:节点x到y这条路径上所有节点的值减少w 解题思路:树链剖分,用树状数组维护每个节点的值。 #pragma comment(linker, "/STACK:1024000000,1024000000
Dylans loves tree Accepts: 49 Submissions: 262 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) 问题描述 Dylans有一棵N个点的树。每个点有点权。树上节点标号为1∼N。他得到了Q个询问,形式如下:
This way 题意: 给你一张大小为n的图,并且点1~k是充电站。有q个询问,每次询问你从a走到b最少需要的电池大小为多少。 假设你当前电量为c,当走过一个权值为w的边时,你的点会变成c-w,如果这个点是充电站,那么你的电量会便会变回电池容量。 问你你每次需要的电池容量最小是多少。 题解: 有一说一,这道题很厉害。 首先先用dijkstra找到每个点距离它最近的充电站的距离,然后的话