摘要: 嘟嘟嘟 这道题删完边后是一棵树,那么一定和最小生成树有关啦。 考虑最后的生成树,无论从哪一个点出发,每一条边都会访问两次,而且在看一看样例,会发现走第w条边(u, v)的代价是L[w] * 2 + c[u] + c[v],所以说把每一条边的边权改为这个,然后跑裸的最小生成树就行了。然后答案还要加上出 阅读全文
posted @ 2018-08-23 17:08 mrclr 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 竟然还能发现这么水的题。就是线段树维护区间亦或嘛~~~~ 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cmath> 5 #include<cstring> 6 #include<cstdli 阅读全文
posted @ 2018-08-23 16:22 mrclr 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 一看n那么小,那一定是状压dp了(表示从没写过,慌)。 首先dp[i][j](i 是一个二进制数,第x位为1代表选了第x头牛),表示 i 这个状态最后一头牛是第 j 头牛时的方案数。 然后当 j 被选上时,即 if(i & (1 << (j - 1)))时,我们在枚举倒数第二头牛p,也是当他 阅读全文
posted @ 2018-08-23 16:05 mrclr 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 dp。 刚开始我想的是dp[i][j]表示在第 i 棵树上,高度为h能吃到的最多的果子,如此能得到转移方程: dp[i][j] = max(dp[i][j + 1], dp[k][j + derta]) (k = 1~n && k != i)。但因为这样写会导致dp[k][j + derta 阅读全文
posted @ 2018-08-23 15:26 mrclr 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这道题我第一眼看出就是RMQ,不过因为细节挺多的调了挺长时间。 st表正常预处理自不必说,主要是有没出现的年份怎么处理。 首先我们考虑false的情况: 1.左右端点年份都已知,且y的降水量小于x或者这中间最大的降水量大于x。 2.左端点年份已知,且中间的最大降水量大于等于左端点降水量。 3 阅读全文
posted @ 2018-08-23 11:18 mrclr 阅读(177) 评论(0) 推荐(0) 编辑