上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 83 下一页
摘要: 嘟嘟嘟 一道很水的黑题~~ 边双缩点后用lca求树上两点间路径即可。 但是比较坑的是这道题是忽略重边的,结果我还特意考虑了重边,然后WA了几发。 还有两个点TLE了,原因是建新图的时候出现了重边。这个重边不是算法的问题,因为边双缩点后不可能有重边,而是写法上的问题:在建无向边的时候,习惯addEdg 阅读全文
posted @ 2018-10-27 15:56 mrclr 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这道题一看就知道是tarjan。 刚开始我是建无向图,然后边双缩点,判断夫妻是否在一个边双连通分量中。但是这个算法是错的,我也不知道为啥,求助各路大佬。 正确的做法是给每一条边规定方向:夫妻边女->男,情侣边男->女。这样就保证了每一条路径一定是男->女->男->女。最后只用判断每一对夫妻是 阅读全文
posted @ 2018-10-27 14:17 mrclr 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 01分数规划思维题。 题中要求交通总量不减少,那么如果总量增加的话,总费用就会增加,所以一定不是更优的解。那么总量守恒。 这是不是就想到了网络流?对于每一个节点流入量等于流出量。然后就是很有思维的一个转化了:把压缩看成退流,把扩容看成增广。 边(x, y)一次压缩,就建一条y -> x,容量 阅读全文
posted @ 2018-10-26 16:05 mrclr 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 floyd + 01分数规划. 题中要求的是比率最大,那么自然就想到01分数规划。对于在哪几个城镇买卖商品,可以用O(n2 * k)贪心预处理。路程并不是两点间的距离,而是最短路,所以floyd先跑一遍。 因为答案下取整,所以整数二分就行。 此题卡dfs版spfa,只能用bfs版过…… 1 阅读全文
posted @ 2018-10-26 14:16 mrclr 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 一道说难也难说简单也简单的dp题。 我觉得我的(有篇题解)做法就属于特别简单的。 平时遇到环的问题都是断环为链,但这道题给了一种新的思路。 观察一下,最后的答案无非就这两种:xxx--xx xxxx xxx xx 对于第二种,有一个特别好的做法:正着求一遍最大子串和,再倒着求一遍,然后枚举断 阅读全文
posted @ 2018-10-25 21:42 mrclr 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这竟然是一道贪心题,然而我在不看题解之前一直以为是dp。 首先最优的配对一定是相邻两个建筑物配对,所以我们求出差分数组,就变成了在n - 1个数中选出不相邻的k个数,使这k个数的和最小。 贪心是在回事呢?首先把所有点放在一个小根堆中,然后如果取出一个点ai,就把ai-1 + ai+1 - a 阅读全文
posted @ 2018-10-25 14:32 mrclr 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这其实是一道贪心题,而不是dp。 首先我们贪心的取有优惠券中价值最小的,并把这些东西都放在优先队列里,然后看[k + 1, n]中,有些东西使用了优惠券减的价钱是否比[1, k]中用了优惠券的物品更划算,是的话就更新。 1 #include<cstdio> 2 #include<iostre 阅读全文
posted @ 2018-10-25 08:58 mrclr 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 一道最短路好题。 首先明确一点,把一条边的边权变成2,等于删去这条边。因为变成2后最短路肯定不会经过这条边,就相当于删去这条边了。 所以题目变成了依次删去Q条边,求每一次删完边后有几个点的最短路变大了。 多做做题就会有这么个思维:删边不好办,然而逆向加边方便多了。所以30做法就是离线逆向加边 阅读全文
posted @ 2018-10-25 08:18 mrclr 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 首先数据范围那么小,那么算法也是相当暴力的。 对于一个点(x, y)所属的联通块,预处理出从这个点出发到这个块外的所有点的曼哈顿距离。复杂度O(n4)。 然后求答案:最少答案不一定是三个联通块两两相连,可能是两个联通块之间搭了个桥,然后第三个联通块连接在这个桥上。因此我们像floyd一样,枚 阅读全文
posted @ 2018-10-25 07:51 mrclr 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 首先看到k只有50,那么就可以开一个数组预处理出来。 sum[u][k]表示节点u到根节点所有节点深度的k次方和,dfs一遍就都搞出来了,预处理复杂度O(n * 50)(快速幂复杂度不计了)。 查询就是lca复杂度,对于路径(x, y),令z = lca(x, y),则ans(x, y) = 阅读全文
posted @ 2018-10-24 22:21 mrclr 阅读(147) 评论(0) 推荐(0) 编辑
上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 83 下一页