zoukankan      html  css  js  c++  java
  • 【LA3485】 Bridge

    前言

    哈哈哈,垃圾微积分哈哈哈
    前置知识:自适应Simpson法与微积分初步学会编程

    Solution

    考虑一下我们有的是什么:

    一段桥梁的横向距离,悬线的长度,以及高度。

    我们发现如果我们重新设一个元(h=H-x),那么很显然就有(x=H-h)

    这个时候感觉(h)好求一些

    那么怎么做?

    可以根据(h)(d)算出悬线长度,然后直接二分答案就好了。(注意按照格式输出)

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    #include<queue>
    #include<iostream>
    using namespace std;
    #define ll long long
    #define re register
    #define file(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout)
    inline int gi(){
    	int f=1,sum=0;char ch=getchar();
    	while(ch>'9' || ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    	while(ch>='0'&&ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();}
    	return f*sum;
    }
    double a;
    double F(double x){
    	return sqrt(1+4*a*a*x*x);
    }
    double Simpson(double a,double b){
        double c=a+(b-a)/2;
        return (F(a)+4*F(c)+F(b))*(b-a)/6;
    }
    double simpson(double a,double b,double eps,double A){
        double c=a+(b-a)/2;
        double L=Simpson(a,c),R=Simpson(c,b);
        if(fabs(L+R-A)<=eps*15)return L+R+(L+R-A)/15;
        return simpson(a,c,eps/2,L)+simpson(c,b,eps/2,R);
    }
    double Ask(double a,double b,double eps){
        return simpson(a,b,eps,Simpson(a,b));
    }
    double check(double d,double h){
    	a=4.0*h/(d*d);
    	return Ask(0,d/2,1e-5)*2;
    }
    const double eps=1e-5;
    int main(){
    	int T=gi();
    	for(int Case=1;Case<=T;Case++){
    		printf("Case %d:
    ",Case);
    		int D,H,B,L;
    		scanf("%d%d%d%d",&D,&H,&B,&L);
    		int n=(D+B-1)/D;
    		double d=(double)B/n;
    		double l=(double)L/n;
    		double x=0,y=H;
    		while(y-x>eps){
    			double mid=x+(y-x)*0.5;
    			if(check(d,mid)<l)x=mid;
    			else y=mid;
    		}
    		printf("%.2lf
    ",H-x);
    		if(Case!=T)puts("");
    	}
    	return 0;
    }
    
  • 相关阅读:
    使用Azure CLI实现自动关闭Azure虚拟机的脚本
    Azure自动化部署服务 (1)
    证书相关知识
    Azure上七层负载均衡APP Gateway
    简谈 Java 中的泛型通配符
    表单提交后为什么要重定向?
    eclipse 误删文件的恢复,代码的恢复
    书籍列表
    Mybatis Generator最完整配置详解
    学习spring mvc
  • 原文地址:https://www.cnblogs.com/mleautomaton/p/10266890.html
Copyright © 2011-2022 走看看