C 一本通 1 2 例 3 曲線

2021-10-05 06:07:42 字數 2717 閱讀 9833

一本通題庫-1435

libreoj-10013

vjudge

明明做作業的時候遇到了 n

nn 個二次函式 si(

x)=a

x2+b

x+cs_i(x)=ax^2+bx+c

si​(x)

=ax2

+bx+

c,他突發奇想設計了乙個新的函式 f(x

明明現在想求這個函式在 [0,

1000

][0,1000]

[0,100

0]的最小值,要求精確到小數點後四位,四捨五入。

輸入包含 t

tt 組資料,每組第一行乙個整數 nnn;

接下來 n

nn 行,每行 3

33 個整數 a,b

,ca, b, c

a,b,

c ,用來表示每個二次函式的 3

33 個係數。注意:二次函式有可能退化成一次。

每組資料輸出一行,表示新函式 f(x

)f(x)

f(x)

的在區間 [0,

1000

][0,1000]

[0,100

0]上的最小值。精確到小數點後四位,四捨五入。

2

12 0 0

22 0 0

2 -4 2

0.0000

0.5000

對於 50

%50\%

50% 的資料,1≤n

≤100

1≤n≤100

1≤n≤10

0;對於 100

%100\%

100%

的資料,1≤t

≤10,1

≤n≤1

05,0

≤a≤100,0

≤∣b∣

≤5000,0

≤∣c∣

≤5000

1≤t≤10, 1≤n≤10^5, 0≤a≤100, 0≤|b|≤5000, 0≤|c|≤5000

1≤t≤10

,1≤n

≤105

,0≤a

≤100

,0≤∣

b∣≤5

000,

0≤∣c

∣≤50

00。

三分。三分法是在二分查詢的基礎上,在右區間(或左區間)再進行一次二分。

與二分查詢不同的是,三分法所面向的搜尋序列的要求是:序列為乙個凸性函式。通俗來講,就是該序列必須有乙個最大值(或最小值),在最大值(最小值)的左側序列,必須滿足不嚴格單調遞增(遞減),右側序列必須滿足不嚴格單調遞減(遞增)。

首先把 l-r 這個區間分成三部分(lmid和rmid)。

接下來就是判斷,我們因為要求最小值,所以我們要使得左邊的值盡可能的小,這樣最左邊就是最小的。

接下來就是判斷最大值,就是找出lmid和rmid判斷出來的最大值,判斷如果lmid的最大值大於rmid,那就說明當前的佇列不是左邊最小,就把l移到lmid的位置,跳過不符合的那一段。如果小於,那就把r移到rmid的位置,在更左邊尋找。

經過這一迴圈的運算之後,我們就可以得到乙個遞增的序列,而這個序列的最左邊就是最小值。

答案:判斷出l的值就好了。

細節:精度要開小,我開了1e-12。

#pragma gcc optimize(3,"ofast","inline")

#pragma g++ optimize(3,"ofast","inline")

#include

#include

#include

#include

#include

#define ri register int

#define re(i,a,b) for(ri i=a; i<=b; i++)

#define ms(i,a) memset(a,i,sizeof(a))

#define max(a,b) (((a)>(b)) ? (a):(b))

#define min(a,b) (((a)

using

namespace std;

typedef

long

long ll;

const

int n=

1e5+5;

const

int inf=

2e9;

int n,t;

double a[n]

,b[n]

,c[n]

;double

calc

(double x)

intmain()

double ans=

calc

(l);

printf

("%0.4lf\n"

,ans);}

return0;

}

一本通 1 2 例 3 曲線

題目link 經典的三分裸題。三分主要是用來求乙個滿足單峰性的函式的最大 最小值的一種演算法,其原理和二分基本一樣。假設求最小值,首先把選擇區域分為三段,然後比較這兩個三等分點的函式值誰更小一些,大的那一邊就不要了 如果大的是靠左的,那就連著左邊不要了,靠右同理 容易證明這樣做是正確的,然後像二分那...

一本通 1 2 例 3 曲線

題解 這道題運用的是新方法三分,然後稍微總結一下三分 就是說具有一定的單調性,找最大最小值,然後和二分基本類似,就是說特性就是說當前兩個點比較,較優的點和最優點在相對了較差點的同側,就是說那邊差就把範圍定到那裡去 錯誤 要注意精度問題,一般定到1e 9或1e 11 include include i...

10016 一本通 1 2 練習 3 燈泡

題目描述 原題來自 zoj 3203 相比 wildleopard 的家,他的弟弟 mildleopard 比較窮。他的房子是狹窄的而且在他的房間裡面僅有乙個燈泡。每天晚上,他徘徊在自己狹小的房子裡,思考如何賺更多的錢。有一天,他發現他的影子的長度隨著他在燈泡和牆壁之間走到時發生著變化。乙個突然的想...