uva 1356 Bridge ( 辛普森积分 )

不要问我辛普森怎么来的,其实我也不知道。。。

  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<string.h>
  4. #include<algorithm>
  5. using namespace std ;
  6.  
  7. double d , h , m , b , l , w ;
  8.  
  9. double f ( double x ) {
  10. double a = 4.0 * m / w / w ;
  11. return sqrt ( 1.0 + 4 * a * a * x * x ) ;
  12. }
  13.  
  14. double simp ( double a , double b ) {
  15. double c = a + ( b - a ) / 2 ;
  16. return ( f( a ) + 4 * f ( c ) + f ( b ) ) * ( b - a ) / 6 ;
  17. }
  18.  
  19. double asr ( double a , double b , double eps , double A ) {
  20. double c = ( a + ( b - a ) / 2 ) ;
  21. double L = simp ( a , c ) , R = simp ( c , b ) ;
  22. if ( fabs ( L + R - A ) <= 15 * eps )
  23. return L + R + ( L + R - A ) / 15.0 ;
  24. return asr ( a , c , eps / 2 , L ) + asr ( c , b , eps / 2 , R ) ;
  25. }
  26.  
  27. double asr ( double a , double b , double eps ) {
  28. return asr ( a , b , eps , simp ( a , b ) ) ;
  29. }
  30.  
  31. int main () {
  32. int T , ca = 0 ;
  33. scanf ( "%d" , &T ) ;
  34. while ( T -- ) {
  35. scanf ( "%lf%lf%lf%lf" , &d , &h , &b , &l ) ;
  36. double n = ceil ( b / d ) ;
  37. l = l / n , w = b / n ;
  38. double x = 0 , y = h ;
  39. while ( fabs ( y - x ) >= 1e-8 ) {
  40. m = ( x + y ) / 2 ;
  41. double k = 2 * asr ( 0 , w / 2 , 1e-8 , simp ( 0 , w / 2 ) ) ;
  42. if ( k < l ) x = m ;
  43. else y = m ;
  44. }
  45. printf ( "Case %d:\n" , ++ ca ) ;
  46. printf ( "%.2lf\n" , h - x ) ;
  47. if ( T ) puts ( "" ) ;
  48. }
  49. return 0 ;
  50. }

uva 1356 Bridge ( 辛普森积分 )的更多相关文章

  1. UVA 1356 - Bridge(自适应辛普森)

    UVA 1356 - Bridge option=com_onlinejudge&Itemid=8&page=show_problem&category=493&pro ...

  2. BZOJ 2178: 圆的面积并 [辛普森积分 区间并]

    2178: 圆的面积并 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1740  Solved: 450[Submit][Status][Discus ...

  3. 【自适应辛普森积分】hdu1724 Ellipse

    Ellipse Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  4. BZOJ2178 圆的面积并 计算几何 辛普森积分

    原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ2178.html 题目传送门 - BZOJ2178 题意 给出 $n(n\leq 1000)$ 个圆,求 ...

  5. 【BZOJ2178】圆的面积并(辛普森积分)

    [BZOJ2178]圆的面积并(辛普森积分) 题面 BZOJ 权限题 题解 把\(f(x)\)设为\(x\)和所有圆交的线段的并的和. 然后直接上自适应辛普森积分. 我精度死活一个点过不去,不要在意我 ...

  6. 【Learning】辛普森积分

    辛普森积分 这种积分法很暴力:只要求你实现出函数求值\(f(x)\). 使用辛普森积分,我们可以求出函数一段区间\([l,r]\)的近似积分.记\(mid=\frac{l+r}2\),有: \[ \i ...

  7. [BZOJ1502]月下柠檬树(自适应辛普森积分)

    1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1387  Solved: 739[Submit][Status] ...

  8. bzoj 2178 圆的面积并 —— 辛普森积分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2178 先看到这篇博客:https://www.cnblogs.com/heisenberg- ...

  9. hdu 1724 Ellipse —— 自适应辛普森积分

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1724 函数都给出来了,可以用辛普森积分: 一开始 eps = 1e-8 TLE了,答案只要三位小数,那么 ...

随机推荐

  1. poj3207 Ikki’s Story IV – Panda’s Trick

    2-SAT. tarjan缩点.强连通分量的点要选一起选. #include<cstdio> #include<algorithm> #include<cstring&g ...

  2. nginx - ssl 配置 - globelsign ssl

    前提: 3个文件 - domain.csr.domain.key.xxx.cer 简述: 1. 本地生成 .key文件  [附件] 2. 再利用key文件,生成csr(certificate Secu ...

  3. django - request.raw_post_data 与 request.body

    request.raw_post_data 重命名成了 request.body - 在1.3版本之后. 这是当时 起票 的讨论内容:https://code.djangoproject.com/ti ...

  4. VS2008+ffmpeg SDK3.2调试tutorial01

    最近研究ffmpeg,在ubuntu下感觉不太好调试,老是找不到函数的声明.所以我就把他移到windows下用vs2008分析 关于环境的搭建,我参考了 http://hi.baidu.com/for ...

  5. zoj 2723 Semi-Prime

    // 题意都不好理解 我以为是求 一个数被分成2个素数和 然后是求分成2个素数积// 坑爹 忘记写 !=EOF 然后一直超时 然后换了几种 还是超时 一看别人代码 速度明显比我慢// 然后发现被自己坑 ...

  6. 【转】ios app 应用内购买配置完全指南

    转自:http://blog.sina.com.cn/s/blog_4b55f6860100sbfb.html 第一印象觉得In-App Purchase(简称IAP)非常简单.Apple提供的大量文 ...

  7. html input readonly 和 disable的区别

    Readonly和Disabled它们都能够做到使用户不能够更改表单域中的内容.但是它们之间有着微小的差别,总结如下: Readonly只针对input(text / password)和textar ...

  8. Android 长按setOnItemLongClickListener 注意细节

    Java代码 gridview.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean ...

  9. CMake实践(1)

    简介: 目录结构t1/main.cpp; t1/CMakeLists.txt 说明: main.cpp: #include <stdio.h> int main(){    printf( ...

  10. 22个所见即所得在线 Web 编辑器

    前言: 关于编辑器,适合的才是最好的,接下来,我会写一些关于日志编辑器的文章,今天就写写,可能内容会比较多. --------------------------------------------- ...