UVALive 6135 Environment Protection (Simpson)
2013-10-09 14:46
246 查看
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove
非常裸的题。。。二分之后,求曲线交部分的面积。
我只是保存自适应Simpson模板的。。
非常裸的题。。。二分之后,求曲线交部分的面积。
我只是保存自适应Simpson模板的。。
#include <iostream> #include <cstdio> #include <cmath> using namespace std; const double eps = 1e-10; double w , h , area , a[4][10]; int k; double function (double x , double *p , double *q , double y) { double up = 0 , down = 0; for (int i = 0 ; i <= k ; i ++) { up = up * x + p[i]; down = down * x + q[i]; } return max (y , up / down); } double simpson_formula (double l , double r , double *p , double *q , double y) { return (function (l , p , q , y) + 4 * function ((l + r) / 2.0 , p , q , y) + function (r , p , q , y)) * (r - l) / 6.0; } double simpson (double l , double r , double *p , double *q , double y) { double m = (l + r) / 2.0; double ans = simpson_formula (l , r , p , q , y); if (fabs (ans - simpson_formula (l , m , p , q , y) - simpson_formula (m , r , p , q , y)) < eps) return ans; return simpson (l , m , p , q , y) + simpson (m , r , p , q , y); } double gao (double low , double high) { double mid , ans = -1; int t = 50; while (t --) { mid = (low + high) / 2.0; double now = simpson (0 , w , a[0] , a[1] , mid) - simpson (0 , w , a[2] , a[3] , mid); if (now > area) ans = mid , low = mid; else high = mid; } return ans; } int main () { #ifndef ONLINE_JUDGE freopen ("input.txt" , "r" , stdin); // freopen ("output.txt" , "w" , stdout); #endif while (scanf ("%lf %lf %lf %d" , &w , &h , &area , &k) != EOF) { for (int i = 0 ; i < 4 ; i ++) for (int j = k ; j >= 0 ; j --) { scanf ("%lf" , &a[i][j]); } printf ("%.5f\n" , -gao (-h , 0)); } return 0; }
相关文章推荐
- iOS地图位置开发
- 10.数据库索引
- WCF全局异常处理
- [SignalR]Groups操作——后续
- AS3的 XML二进制化
- checkpoint process vs writer process vs wal writer process
- Oracle去掉特殊字符
- Linux Shell 2>&1 &
- explain命令详解
- 指针数组和数组指针
- call by value 和call by reference 部分转载
- java对文件拷贝的简单操作
- FTDC
- PHP实现手机归属地查询API接口
- 串口通信
- 时间与日期处理
- matlab常用函数小记
- 在mac ox s虚拟机中的unity3D项目编译生成并导出的xcode项目无法在ios设备中运行
- iOS中MVC的理解
- 将日期时间转换为指定格式