题解 P5951 【[BOI2003]Barrel】
远古BOI系列。。。
初中物理题(大雾)
设当前方块棱长为
-
当
\rho_a\ge1 时,整个方块都沉到水里去了,这个方块占用了a^3 的体积,所以液面会上升\dfrac{a^3}{S} -
当
\rho_a<1 时,方块是浮在水面上的,根据受力平衡的知识(设方块体积为V_a ,排开水的体积为V_a' ):
所以液面会上升
其实就是液面上升
还有一个细节就是水是会溢出来的
#include<bits/stdc++.h>
using namespace std;
double s,h,v,d,rou,a;
int x,y,z,n;
int main(){
scanf("%d%d%d",&x,&y,&z); s=x,h=y,v=z;
scanf("%d",&n); d=v/s;
for (int i=1; i<=n; i++){
scanf("%lf%lf",&a,&rou);
rou=min(rou,1.0);
d+=a*a*a*rou/s;
if (d>=h){ printf("%.10lf\n",v); return 0; }
}
printf("%.10lf\n",d);
return 0;
}