#NOI19992B. 最优连通子集
最优连通子集
Description
众所周知,我们可以通过直角坐标系把平面上的任何一个点 用一个有序数对 来唯一表示,如果 都是整数,我们就把点 称为整点,否则点 称为非整点。我们把平面上所有整点构成的集合记为 。
定义 1 :两个整点 ,若 ,则称 相邻,记作 ~ ,否则称 不相邻。
定义 2 :设点集 是 的一个有限子集,即 = ,其中 属于 ,我们把 称为整点集。
定义 3 :设 是一个整点集,若点 , 属于 ,且存在一个有限的点序列 满足:
- 属于 ();
- = , = ;
- ~,即 与 相邻;
- 对于任何 有 ;
我们则称点 与点 在整点集 上连通,把点序列 称为整点集 中连接点 与点 的一条道路。
定义 4 :若整点集 满足:对于 中的任何两个整点, 中有且仅有一条连接这两点的道路,则 称为单整点集。
定义 5 :对于平面上的每一个整点,我们可以赋予它一个整数,作为该点的权,于是我们把一个整点集中所有点的权的总和称为该整点集的权和。
我们希望对于给定的一个单整点集 ,求出一个 的最优连通子集 ,满足:
- 是 的子集
- 对于 中的任何两个整点,在 中连通;
- 是满足条件 (1) 和 (2) 的所有整点集中权和最大的。
Format
Input
第1行是一个整数N,表示单整点集V中点的个数; 以下N行中,第i行(1<=i<=N)有三个整数, , ,依次表示第i个点的横坐标,纵坐标和权。同一行相邻两数之间用一个空格分隔。
Output
仅一个整数,表示所求最优连通集的权和。
Samples
5
0 0 –2
0 1 1
1 0 1
0 –1 1
-1 0 1
2
Limitation
参数约定
2<=N<=1000 -<= , <= -100<= <=100