logo AlgoBeat OnlineJudge
登录 注册

#101157. [BZOJ 1157] [CTSC2005]合并正方形combine

内存限制:162 MiB 时间限制:30000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: 匿名

题目描述

一个二维平面初始时为空,有一串往平面中加入点的命令。加入的点有两种,这里称为 类点和 类点(如图 1,黑色正方形表示 类点,小圆黑点表示 类点)。 类点一定位于 轴上,而且不会重叠,而 类点可以出现在平面上的任何一个位置,可以重叠。每个 类点有一个权值

处理:

  1. 最初,将相邻两个 类点之间连一个与 轴成 的正方形(如图 2)。
  2. 每次可以将任意两个有公共点的正方形合并为一个大正方形,合并之后两个小正方形消失。图 2 的左数第 的正方形合并后在图 3 中表示为灰边正方形。

合并后的正方形将平面划分为 个区域,与正方形 条边相邻的 个区域分别为图 3 中的 。落在区域 中的 类点的权值和记为 ,落在区域 中的 类点的权值和记为 ,落在区域 中的 类点的权值和记为 ,落在区域 中的 类点的权值和记为 。落在灰色正方形内部的 类点的权值和记为 类点保证不会出现在任何一个区域的边界上),则合并费用为 。落在其他区域的 类点不予考虑。每次合并之后并不影响 类点在平面上的位置和它自己所拥有的权值。每进行一次合并,由 类点形成的正方形会减少一个,直到只剩下一个正方形为止。合并总费用为每次合并费用之和。不同合并顺序的合并费用可能会不同。点是一个一个加入到平面的。加入第 类点后,平面上有 类点和在此之前加入的所有 类点。设此时的最小合并费用为 。给定费用限制 ,编程求出 类点的最大数目 ,使得前 类点的最小合并费用不超过 ,即

输入格式

第一行包含两个数 ,表示有 条加入点的命令,费用限制为

以下包含 行,每行一个字母表示点的类型。A 表示 类点,B 表示 类点。

对于 类点,后面一个数表示这个点的 坐标。

对于 类点,后面三个数表示这个点的 坐标和这个点的权值。

输出格式

输出件仅包含一个整数 ,即使 的最大

样例

样例输入 #1

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

样例输出 #1

3

样例说明

输入最后一个点时,所有点如下图。 类点旁边的数字为权值。

合并前 个点的最小费用为 , 合并前 个点的最小费用

由于 ,因此最大的

数据范围与提示

对于 的数据,

对于 的数据, 类点的数目

均为整数,绝对值不超过

均为实数,

所有输入实数最多保留三位小数。