HDU 2899 Strange fuction 三分
F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)
Can you find the minimum value when x is between 0 and 100.
InputThe first line of the input contains an integer T(1<=T<=100) which means the number of test cases. Then T lines follow, each line has only one real numbers Y.(0 < Y <1e10)OutputJust the minimum value (accurate up to 4 decimal places),when x is between 0 and 100.Sample Input
2 100 200
-74.4291 -178.8534
題目的意思就是給你1個 y(0 < Y <1e10) 求F(x)的的最小值在區間[0,100]
首先觀察這個式子 顯然是先減後增的 那麼兩種方法 一種是手動求個導 算x=0 用二分
我用的是三分求極值其實差不多太多,還是比較容易的。
#include <iostream> #include <algorithm> #include <cmath> using namespace std; long long y; const double eps= 1e-6; double calc(double x) { return (6*pow(x,7)+8*pow(x,6)+7*pow(x,3)+5*pow(x,2)-y*x); } double three(double l,double r) { double mid,midmid; while(l+eps<r) { mid=(l+r)/2; midmid=(mid+r)/2; if(calc(mid)<calc(midmid)) r=midmid; else l=mid; } return mid; } int main() { int t; scanf("%d",&t); while(t--) { scanf("%lld",&y); double x = three(0.0,100.0); printf("%.4lf\n",calc(x)); } return 0; }
相關推薦
HDU 2899 Strange fuction 三分
Now, here is a fuction: F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100) Can you find the minimum value when x is between 0
Hdu 2899 Strange fuction(二分三分可做,模擬退火解法)
題意:計算F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)的最小值 分析:求導發現0~100內為凹函式,那麼可以直接二分導數或者三分原函式, 這裡寫一下模擬退火的做法,每次左右找到較低函式值並轉移x,控制一下
HDU 2899 Strange fuction 二分
cnblogs clu return abs print names sca 求導 range 1.題意:給一個函數F(X)的表達式,求其最值,自變量定義域為0到100 2.分析:寫出題面函數的導函數的表達式,二分求導函數的零點,對應的就是極值點 3.代碼: 1 # i
HDU 2899 Strange fuction(牛頓叠代)
clas ont decimal ref OS careful rst panel 可以轉化 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S
hdu 2899 Strange fuction——模擬退火
mes using cti () urn algorithm str turn i++ 題目:http://acm.hdu.edu.cn/showproblem.php?pid=2899 還可三分。不過只寫了模擬退火。 #include<iostream> #
HDU 2199 Can you solve this equation? HDU 2899 Strange fuction
Can you solve this equation? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 254
hdu 2899 Strange fuction 【二分+數學函式求導】
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio
HDU 2899 Strange fuction 二分解一元多次方程
Strange fuction Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9479 Accepted
Line belt HDU - 3400巢狀三分
巢狀三分 #include <iostream> #include <cmath> #include <cstdio> #include <algorithm> using namespace std; const double eps=1e
hdu 2988 Strange fuction【模擬退火】
計算:給出y , 的最小值 wa到哭啊,簡直上火了,是板子沒有套對, nex=now+T*i;//新解 T*i是變化的範圍加上原先的才是新解, 還有精確度,因為評估函式要平方,所以要高一些 最終15ms &nbs
2899 Strange fuction【爬山演算法 || 模擬退火】
Time limit 1000 ms Memory limit 32768 kB Now, here is a fuction: $F(x) = 6 * x7+8*x6+7x3+5*x2-yx (0 <= x <=100) $ Can you fin
hdu 5531 Rebuild(三分)
題目連結: 題目大意: 給出n個點,這n個點可以連成一個凸多邊形。現在以多邊形的端點作為圓心,分別做n個圓,要求在同一條線上的端點的圓是相切的。現在要求滿足條件以後,計算最小的圓面積總和。如果不能保證條件成立,則輸出impossible。 思路: 如果我們知道了第一個點上
HDU 3400 兩次三分
這道題卡了我好久,一直不能證明他們的距離為什麼是先遞減後遞增,所以也不能想到三分 網上也沒有給出證明,嘗試用三分寫了下,注意是三分的E,F點在AB CD點上的佔的比例,這樣程式碼比較簡單好看 #include<stdio.h> #include<ma
HDU 5531 Rebuild(三分)——2015ACM/ICPC亞洲區長春站
傳送門 RebuildTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 2483 Accep
【三分/函式先減後增/先增後減】 Strange fuction HDU基礎04二分法
Problem DescriptionNow, here is a fuction: F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)Can you find the minimum value when x
Strange fuction—裸地三分
#include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> #include<math.h> using namespace std; #define eps
Strange fuction 二分/三分求函式極值點
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4527 Accepted Submission(s)
hdu 4717 The Moving Points(三分)
fine names -- sqrt blank .cn class 題目 col 題目鏈接:hdu 4717 The Moving Points 題意: 在二維平面上有n個點,每個點給出移動的方向和速度。 問在某個時刻,這些點中最大距離最小是多少,輸出時刻和距離。 題解:
hdu 4355 Party All the Time(三分)
while pid const d+ ans acm space += bits 題目鏈接:hdu 4355 Party All the Time 題意: 有n個人,在一個一維的坐標軸上,現在讓他們聚在一起。 每個人移動一段距離會產生一個 不開心值=S3*W,現在問你最小的
HDU 2298 三分
拋物線 can 給定 mem -- for () make pair 斜拋從(0,0)到(x,y),問其角度。 首先觀察下就知道拋物線上橫坐標為x的點與給定的點的距離與角度關系並不是線性的,當角度大於一定值時可能會時距離單調遞減,所以先三分求個角度範圍,保證其點一定在拋物