P3382 模板 三分法

2022-04-08 01:19:34 字數 705 閱讀 3485

這是一道版子題

一開始看了別人的部落格,知道三分方法

後來自己實現

交了兩次,全wa。原因是係數定義成了int......唉樣例竟然過了

第三次就全ac了

沒啥思維含量,不過學到了 fabs() 和 判斷精度

今天xmz問我一本通的

也用到了精度判斷

三分**

#include #include 

#include

#include

#include

#include

#define precision 1e-12

using

namespace

std;

intn ;

double a , b , l , r,xi[15

];double f(double

x)    x0 *=xi[i];

ans +=x0;

}  //cout << " " << x << " " << ans << endl;

return

ans;

}int

main()

l = a , r =b;

while (l else

}  printf (

"%.5lf\n

", l);

return0;

}

P3382 模板 三分法

這道題其實是可以二分的,但是有更好的演算法,叫做三分。三分這種演算法用於求單峰函式的最大值或者最小值。演算法思想就是弄 l,r 區間的兩個三等分點,然後來縮小範圍。因為這道題是求峰頂,所以我們可以模擬退火通過兩個三等分點的大小關係來縮小範圍。我們把那個值小的那邊的範圍弄掉,慢慢我們就會到達峰頂。還有...

題解 P3382 模板 三分法

本題使用充滿mo力的mo你退火 關於模擬退火,ta。看到這單峰函式,猛地意識到模擬退火基本可以a掉,而靈魂 else 是不需要的。要也沒事 includeusing namespace std int n double x 15 double ansx,ans 1e18 7,temperature ...

洛谷P3382 模板 三分法

題目鏈結 普通的求多項式 double f double x return f 秦九韶演算法從裡到外逐層計算一次多項式的值 double f double x 微積分求導 易證,若f x 0且f x dx f x dx 0則f x 必為原函式的乙個極大值或極小值 求駐點和零點 注 此題不含駐點 題目...