- 博客(6)
- 收藏
- 关注
原创 点双联通分量和边双联通分量小结
点双联通分量的求解 关键点在于割点。遇到一个割点就是一个点双联通分量。但要注意的是割点属于多个点双联通分量。所以在求解点双联通分量的时候,栈内元素存的是边。边双联通分量的求解 关键点在于桥。遇到一个桥的时候就说明有两个边双联通分量。然而桥不属于任何一个边双联通分量。栈内元素存的是单个点。最后dfs结束时还要检查栈是否为空,因为里面还有可能有属于另一个边双联通分量的点。 当然求解边双联通
2017-04-04 21:26:50
458
原创 HDU 4725
题意大概是有10e5个的点,每个点属于一个块,编号相邻的两个块之间的点可以互通。然后还有额外的10e5条边。一开始算了了一下如果暴力做,构图的时间就直接让你TLE。后来想到了把块独立出来,块与块之间连边,费用为c。点与所属块之间连边费用为0。然后用spfa算法去做了。结果还是TLE,后来改用了静态邻接表,还是TLE。然后改用了堆优化的djs算法。成功wa了。后来跑了一组数据发现这样构图会有问题的。
2017-04-04 17:36:10
385
原创 HDU - 5545 The Battle of Guandu
这个题目的题意大概是,曹操和袁绍打仗,一共有M个战场,和N个村庄。对于每个战场重要值为2的战场必须赢,重要值为1的战场不能输,重要值为0的战场无所谓。赢得方式是对于一个战场,曹操人数的数量大于袁绍人数的数量。对于每个村庄曹操可以用ci每一个兵的钱,让所买的兵加入ai战场,同时也会有同等数量的兵加入袁绍所在的bi战场。假设我们一开每个战场双方的人数都是0,那么对于要赢的战场要保证曹操的人数比袁绍的人
2017-04-02 10:46:53
327
原创 UVALive - 5713
秦始皇要修建连通所有城市的路,一共有N个点以及各个点的坐标和人口。修建很多条路使N个城市连通,但是可以使其中一条路的修建费用为0。在修建费用最小的前提下,使得A/B最大。A指费用为0的路所连通的两个城市的人口和,B指除修建费用为0的路之外的所以路之和。解题思路:因为要是整体的修建费用最小,必定要求他的最小生成树。但是可以使生成树中的一条边的费用为0,这样就不能简单的光求最小生成树。因为可以使连
2017-03-30 20:50:27
377
原创 POJ2559 单调递增栈
题意大概讲述的是有许多宽度为1的矩形,问你最大面积的矩形是多少。更具模型可以得知,要是有一个高度较小块进入后,无法给前面高度较高的块增加同一高度的面积。这时候就可以处理前面的高块,因为现在的块是较低的,已经没办法可以接到后面较高的。所以删去前面所有比当前块高的块,并且处理这些块可以得到的面积。最后一次性处理所有剩下的块。#include#include#include#i
2017-03-29 20:52:44
350
原创 HDU 5925 离散化+dfs
题意:有一个10的9次方乘10的9次方的图,问有几个联通块,每个联通块里面有多少元素。对于这么大的一个图,直接dfs一定会T。所以我们可以用离散化的方法。把原图拆成由众多矩形构成的图。这样我们可以用离散化,表示出每个矩形顶点的坐标。然后计算每个矩形的面积。给每个矩形是好的还是坏的打上标记。最后dfs一下联通的矩形。既可以得出答案。#include#include#include#in
2017-03-04 16:27:56
422
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人