P1063

[CTSC2009]魔幻花园

[CTSC2009]魔幻花园

魔法师栋栋有一座美丽的魔幻花园。花园中种满了各式各样的魔幻植物,一年四季鲜花盛开,栋栋的朋友们都很喜欢来这里游玩。

花园的浇灌系统由栋栋特别设计。他用魔法在花园上空设置了 nn 个喷头,这些喷头都与附近的圣水河相连。浇灌时,所有喷头同时喷出水流。水流在空中划出抛物线,最终恰好浇灌到 nn 棵最缺水的魔幻植物。

所有喷头均位于高度为 hh 的同一水平面内,并且水平放置。水流离开喷头时只有水平方向的初速度,不同喷头喷出水流的水平初速度可以不同。花园中没有风,空气阻力可以忽略。在重力加速度 gg 的作用下,每股水流的轨迹都是一条抛物线。空间中的任意一点最多被 33 个喷头喷到,并且水流之间的相交不会影响各自的运动轨迹。

近年来,魔幻花园附近新建了许多工厂,圣水河受到了污染。栋栋不希望受污染的水影响花园,因此需要先用魔法净化用于浇灌的水。

栋栋的魔法只能净化已经从喷头喷出的水。他可以在空中的某个水平面内施展魔法,形成一个凸多边形滤水层。所有穿过滤水层的水都会被净化。施展魔法所需的能量与滤水层的面积成正比,每平方米滤水层需要 11 单位魔法能量。

栋栋希望净化所有喷头喷出的水。请计算他最少需要消耗多少单位的魔法能量。

为了描述问题,栋栋在花园中建立了一个三维直角坐标系:以花园的西北角为坐标原点,向东为 xx 轴正方向,向南为 yy 轴正方向,向上为 zz 轴正方向。第 ii 个喷头的位置为 (xi,yi,h)(x_i,y_i,h),它所浇灌的魔幻植物的位置为 (xi′,yi′,0)(x_i',y_i',0)。

水流从喷头运动到地面的过程可以视为平抛运动,并分解为水平方向与竖直方向上的两个分运动。令

L=(xi−xi′)2+(yi−yi′)2,L=(x_i-x_i')^2+(y_i-y_i')^2,

则水平方向的速度保持不变,即

v平(t)=v0,v_{\text{平}}(t)=v_0,

竖直方向的速度为

v竖(t)=gt.v_{\text{竖}}(t)=gt.

输入格式

第一行包含两个实数 h,gh,g,分别表示喷头的高度和魔幻花园中的重力加速度。

第二行包含一个整数 nn,表示喷头的数量。

接下来 nn 行,第 ii 行包含四个整数 xi,yi,xi′,yi′x_i,y_i,x_i',y_i',表示第 ii 个喷头位于 (xi,yi,h)(x_i,y_i,h),其喷出的水流最终浇灌位于 (xi′,yi′,0)(x_i',y_i',0) 的魔幻植物。

输出格式

输出一个实数,表示栋栋最少需要消耗的魔法能量,结果精确到小数点后 44 位。

样例输入

样例 11:

36 2
3
99 100 105 100
101 100 95 100
100 99 100 105

样例 22:

10 9.8
3
0 0 0 0
1 0 100 0
0 50 0 1

样例输出

样例 11:

0.0000

样例 22:

25.0000

数据范围

  • 对于 20%20\% 的数据,1≤n≤101\le n\le 10;
  • 对于 50%50\% 的数据,1≤n≤501\le n\le 50;
  • 对于 100%100\% 的数据,1≤n≤1001\le n\le 100;
  • 0<h≤1040<h\le 10^4;
  • 0<g≤100.00<g\le 100.0;
  • 0≤xi,yi,xi′,yi′≤10000\le x_i,y_i,x_i',y_i'\le 1000。

来源与许可

本题为 CTSC 2009 试题「魔幻花园」,题面与测试数据整理自 BZOJ。

样例 1

输入

36 2
3
99 100 105 100
101 100 95 100
100 99 100 105

输出

0.0000

样例 2

输入

10 9.8
3
0 0 0 0
1 0 100 0
0 50 0 1

输出

25.0000