bzoj#P1157. [CTSC2005]合并正方形combine
[CTSC2005]合并正方形combine
一个二维平面初始时为空,有一串往平面中加入点的命令。加入的点有两种,这里称为 类点和 类点(如图 1,黑色正方形表示 类点,小圆黑点表示 类点)。 类点一定位于 轴上,而且不会重叠,而 类点可以出现在平面上的任何一个位置,可以重叠。每个 类点有一个权值 。
处理:
- 最初,将相邻两个 类点之间连一个与 轴成 的正方形(如图 2)。
- 每次可以将任意两个有公共点的正方形合并为一个大正方形,合并之后两个小正方形消失。图 2 的左数第 的正方形合并后在图 3 中表示为灰边正方形。
合并后的正方形将平面划分为 个区域,与正方形 条边相邻的 个区域分别为图 3 中的 。落在区域 中的 类点的权值和记为 ,落在区域 中的 类点的权值和记为 ,落在区域 中的 类点的权值和记为 ,落在区域 中的 类点的权值和记为 。落在灰色正方形内部的 类点的权值和记为 ( 类点保证不会出现在任何一个区域的边界上),则合并费用为 。落在其他区域的 类点不予考虑。每次合并之后并不影响 类点在平面上的位置和它自己所拥有的权值。每进行一次合并,由 类点形成的正方形会减少一个,直到只剩下一个正方形为止。合并总费用为每次合并费用之和。不同合并顺序的合并费用可能会不同。点是一个一个加入到平面的。加入第 个 类点后,平面上有 个 类点和在此之前加入的所有 类点。设此时的最小合并费用为 。给定费用限制 ,编程求出 类点的最大数目 ,使得前 个 类点的最小合并费用不超过 ,即 。
输入格式
第一行包含两个数 ,表示有 条加入点的命令,费用限制为 。
以下包含 行,每行一个字母表示点的类型。A
表示 类点,B
表示 类点。
对于 类点,后面一个数表示这个点的 坐标。
对于 类点,后面三个数表示这个点的 坐标和这个点的权值。
输出格式
输出件仅包含一个整数 ,即使 的最大 。
8 30.0
A -2
A 0
B 7 8 5.0
B 4 -3 2.0
B -3 4 1.0
A 2
B -4 5 1.0
A 4
3
样例说明
输入最后一个点时,所有点如下图。 类点旁边的数字为权值。
合并前 个点的最小费用为 , 合并前 个点的最小费用 。
由于 而 ,因此最大的 为 。
数据规模与约定
对于 的数据,。
对于 的数据, 类点的数目 ;
;
均为整数,绝对值不超过 ;
均为实数,;
所有输入实数最多保留三位小数。