开始没看出来是贪心,一度以为是动态规划,还是太弱了呀-.. 不难分析出,两个相同的飞行动作之间夹一个相同的动作是多余的,所以就贪心一下,按Ci从大到小排序,依次加到左右两端点,知道加不了为止. 代码: #include<cstdio> #include<algorithm> using namespace std; const int maxn = 305; int val[maxn]; int cmp(int i,int j) { return i >j; } int ma…
P1501 [国家集训队]Tree II 题目描述 一棵\(n\)个点的树,每个点的初始权值为\(1\).对于这棵树有\(q\)个操作,每个操作为以下四种操作之一: + u v c:将\(u\)到\(v\)的路径上的点的权值都加上自然数\(c\): - u1 v1 u2 v2:将树中原有的边\((u_1,v_1)\)删除,加入一条新边\((u_2,v_2)\),保证操作完之后仍然是一棵树: * u v c:将\(u\)到\(v\)的路径上的点的权值都乘上自然数\(c\): / u v:询问\(u…