地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3016
题意:给你n条线段,这些线段都平行于坐标轴,没有线段重叠,但是有交点,切割每条线段有一个值,现在这些线段形成一些封闭的区间,问怎样切割使得所有点之间有通路,且花费最小
分析:这题抛掉线段的外壳,很容易发现每个格子是一个点,外面的平面是一个点,点之间的边正好是切割线段的花费,答案明显的是最小生成树的值。。。不过这些线段怎么处理成小格子,头疼= =,一开始想放弃,不过仔细一想,好像可以做,大格子不好处理,那就处理最小的格子啊,把坐标离散化,然后做成n×m个格子,格子之间的边如果是一条线段,那么值就是切割线段的值,如果没有线段,那么值为零,现在建边就简单了,只要建每个格子上下左右的边就行。。。然后就呵呵了,具体看代码~ ~
代码:
/** head files*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include