zoukankan      html  css  js  c++  java
  • 【随意学学】三分法

    三分法其实是很naive的东西……

    但是不知道为什么蒟蒻我之前一直没空学……

    大概就是求一类单峰的函数,每次把区间三分(以求极小值举例),如果$f(mid1)<f(mid2)$说明解在$[L,mid2]$中,反之解在$[mid2,R]$中。

    裸题1:LA 5009

     1 #include<bits/stdc++.h>
     2 #define N 100005
     3 using namespace std;
     4 int n,a[N],b[N],c[N];
     5 inline double f(double x){
     6     double ans=a[1]*x*x+b[1]*x+c[1];
     7     for(int i=2;i<=n;i++)ans=max(ans,a[i]*x*x+b[i]*x+c[i]);
     8     return ans;
     9 }
    10 inline int read(){
    11     int f=1,x=0;char ch;
    12     do{ch=getchar();if(ch=='-')f=-1;}while(ch<'0'||ch>'9');
    13     do{x=x*10+ch-'0';ch=getchar();}while(ch>='0'&&ch<='9');
    14     return f*x;
    15 }
    16 int main(){
    17     int T=read();
    18     while(T--){
    19         n=read();
    20         for(int i =1;i<=n;i++)a[i]=read(),b[i]=read(),c[i]=read();
    21         double l=0.0,r=1000.0;
    22         for(int i=1;i<=100;i++){
    23             double mid1=l+(r-l)/3,mid2=r-(r-l)/3;
    24             if(f(mid1)<f(mid2))r=mid2;else l=mid1;
    25         }
    26         printf("%.4lf
    ",f(l));
    27     }
    28     return 0;
    29 }

    裸题2:洛谷模版

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int n;
     4 double l,r,a[20],xsh[20];
     5 inline double f(double x){
     6     double ans=0;
     7     for(int i=1;i<=n;i++){
     8         double tmp=a[i];
     9         for(int j=1;j<=n-i+1;j++)tmp*=x;
    10         ans+=tmp;
    11     }
    12     return ans+a[n+1];
    13 }
    14 int main(){
    15     scanf("%d",&n);scanf("%lf%lf",&l,&r);
    16     for(int i=1;i<=n+1;i++)scanf("%lf",&a[i]);
    17     double lx=l,rx=r;
    18     while(abs(lx-rx)>0.000001){
    19         double x1=lx+(rx-lx)/3,x2=rx-(rx-lx)/3;
    20         if(f(x1)>f(x2)) rx=x2;
    21         else lx=x1;
    22     }
    23     printf("%.5lf
    ",lx);
    24     return 0;
    25 }
    zzq wc-ctsc-apio-NOI Au;yql精通多项式;zyz精通女装;由乃精通数据结构;孔老师是毒奶大师;我没有学上:我们都有光明的前途。
  • 相关阅读:
    MongoDB启动及用户名密码设置
    matplotlib热图
    Python--多进程--01
    python--进程
    python--pipe
    sklearn--feature extract--人脸识别
    Python--pool
    scikit-learn---PCA(Principle Component Analysis)---KNN(image classifier)
    pycharm 添加注册码
    django第三方库
  • 原文地址:https://www.cnblogs.com/zcysky/p/6826436.html
Copyright © 2011-2022 走看看