• 【模板整合计划】计算几何


    【模板整合计划】计算几何

    一:【计算几何全家桶】

    二:【自适应辛普森积分】

    1.【自适应辛普森积分 1】

    【模板】自适应辛普森法 (1) ( ext{[P4525]})

    (局部精度)

    #include<algorithm>
    #include<cstdio>
    #include<cmath>
    #define LD double
    #define LL long long
    #define Re register int
    #define Vector Point
    using namespace std;
    const LD eps=1e-7;
    inline int dcmp(LD a,LD eps){return a<-eps?-1:(a>eps?1:0);}
    LD a,b,c,d,L,R;
    inline LD F(LD x){return (c*x+d)/(a*x+b);}
    inline LD Simpson(LD L,LD R){return (R-L)*(F(L)+4.0*F((L+R)*0.5)+F(R))/6.0;}
    inline LD sakura(LD L,LD R,LD now,LD eps){
        LD mid=(L+R)*0.5,FL=Simpson(L,mid),FR=Simpson(mid,R);
        if(!dcmp(now-FL-FR,eps))return now;
        return sakura(L,mid,FL,eps/2)+sakura(mid,R,FR,eps/2);
    }
    int main(){
    //    freopen("123.txt","r",stdin);
        scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&L,&R);
        printf("%lf
    ",sakura(L,R,Simpson(L,R),eps));
    }
    

    (全局精度)

    #include<algorithm>
    #include<cstdio>
    #include<cmath>
    #define LD double
    #define LL long long
    #define Re register int
    #define Vector Point
    using namespace std;
    const LD eps=1e-13;
    inline int dcmp(LD a){return a<-eps?-1:(a>eps?1:0);}
    LD a,b,c,d,L,R;
    inline LD F(LD x){return (c*x+d)/(a*x+b);}
    inline LD Simpson(LD L,LD R){return (R-L)*(F(L)+4.0*F((L+R)*0.5)+F(R))/6.0;}
    inline LD sakura(LD L,LD R,LD now){
        LD mid=(L+R)*0.5,FL=Simpson(L,mid),FR=Simpson(mid,R);
        if(!dcmp(now-FL-FR))return now;
        return sakura(L,mid,FL)+sakura(mid,R,FR);
    }
    int main(){
    //    freopen("123.txt","r",stdin);
        scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&L,&R);
        printf("%lf
    ",sakura(L,R,Simpson(L,R)));
    }
    

    2.【自适应辛普森积分 2】

    【模板】自适应辛普森法 (2) ( ext{[P4526]})

    还没学,先咕着。

  • 相关阅读:
    2-SAT
    模板 两次dfs
    SG函数与SG定理
    NIM博弈
    python 给小孩起名
    pytest 数据驱动
    pytest 结合selenium 运用案例
    字符串的转换方法与分割
    字符串的方法
    字符串常量池与字符串之间的比较
  • 原文地址:https://www.cnblogs.com/Xing-Ling/p/12952539.html
Copyright © 2020-2023  润新知