如題,給出乙個n次函式,保證在範圍[l,r]內存在一點x,使得[l,x]上單調增,[x,r]上單調減。試求出x的值。
輸入格式:
第一行一次包含乙個正整數n和兩個實數l、r,含義如題目描述所示。
第二行包含n+1個實數,從高到低依次表示該n次函式各項的係數。
輸出格式:
輸出為一行,包含乙個實數,即為x的值。四捨五入保留5位小數。
輸入樣例#1:
3 -0.9981 0.5輸出樣例#1:1 -3 -3 1
-0.41421時空限制:50ms,128m
資料規模:
對於100%的資料:7<=n<=13
樣例說明:
如圖所示,紅色段即為該函式f(x)=x^3-3x^2-3x+1在區間[-0.9981,0.5]上的影象。
當x=-0.41421時影象位於最高點,故此時函式在[l,x]上單調增,[x,r]上單調減,故x=-0.41421,輸出-0.41421。
題解:在[l,r]中,
取a=(r-l)/3+l,b=(r-l)/3*2+l。
如果f(a)>f(b)
則答案在[l,b]裡(如果在[b, r]裡,則[a, b]段遞增),
如果f(a)則答案在[a,r]裡(如果在[l, a]裡,則[a, b]段遞減),
遞迴或迴圈即可。
1 #include2 #include3 #include4 #include5 #include6using
namespace
std;
7double l,r,xs[23];intn;8
double f(double
x)15
return ans+xs[n+1
];16}17
intmain()
27 printf("
%.5f\n
",lx);
28return0;
29 }
三分法(洛谷3382 模板 三分法)
如題,給出乙個n次函式,保證在範圍 l,r 內存在一點x,使得 l,x 上單調增,x,r 上單調減。試求出x的值。輸入格式 第一行一次包含乙個正整數n和兩個實數l r,含義如題目描述所示。第二行包含n 1個實數,從高到低依次表示該n次函式各項的係數。輸出格式 輸出為一行,包含乙個實數,即為x的值。四...
洛谷 3382 模板 三分法
題目描述 如題,給出乙個n次函式,保證在範圍 l,r 內存在一點x,使得 l,x 上單調增,x,r 上單調減。試求出x的值。輸入輸出格式 輸入格式 第一行一次包含乙個正整數n和兩個實數l r,含義如題目描述所示。第二行包含n 1個實數,從高到低依次表示該n次函式各項的係數。輸出格式 輸出為一行,包含...
P3382 模板 三分法
這是一道版子題 一開始看了別人的部落格,知道三分方法 後來自己實現 交了兩次,全wa。原因是係數定義成了int.唉樣例竟然過了 第三次就全ac了 沒啥思維含量,不過學到了 fabs 和 判斷精度 今天xmz問我一本通的 也用到了精度判斷 三分 include include include incl...