UVA 11401 數學公式 dp

2021-07-15 23:33:20 字數 724 閱讀 4514

題意:給定乙個不小於3的正整數n,從1到n中的數中選出三個數構成三角形,求這樣的三角形的種類。3,4,5和3,5,4為同一三角形。

分析:該題的資料很大,顯然不能用普通的模擬的方法,肯定會超時。但是可以打表找出規律,見下圖:

通過打表可以發現dp[4]-dp[3]=1*1  

dp[5]-dp[4]=1*2   

dp[6]-dp[5]=2*2  

dp[7]-dp[6]=2*3  ……據此區分奇偶數即可得出dp方程,i為偶數時,dp[i]=dp[i-1]+(i-2)/2*(i-2)/2; i為奇數時,dp[i]=dp[i-1]+(i-3)/2*((i-3)/2+1)。見ac**:

#include#includeconst int maxn=1000005;

long long dp[maxn];

int main()

}

該題在一開始做題時,沒有使用dp陣列而是選擇了根據n推出了乙個具體的數學公式,結果雖然正確,但是在提交時tle,想來原因是時間卡得很緊,每次都大數計算的話會很好時間,應該事先用dp陣列執行好儲存結果後再查詢,這樣可以大大節省時間。遇到這種型別題目應該盡可能地向dp方程和dp陣列上推導。

做題意識還是達不到要求,還是得努力刷題……

特記下,以備後日回顧。

uva11401 數學基礎題

題目的大意是 現在有1.n總共n個不同的數字,從裡面任選三個作為三邊長,能構成三角形的個數一共有多少個。解答 設c x 是最長邊為x時的三角形個數,那麼要求的答案就等於c 1 c 2 c x 所以主要需要解決的是c x 又設三邊長分別為x,y,z,由x y z x得到 1.當y 1時,z有0個解 2...

UVa 11401 數三角形 組合數學

數三角形 counting,uva 11401 有多少種方法可以從1,2,3,n中選出 3個不同的整數,使得以 它們為三邊長可以組成三角形?比如n 5時有3種方法,即 2,3,4 2,3,5 3,4,5 n 8時有22種方法。輸入格式 輸入包含多組測試資料,每組資料的第一行為整數n 3 n 1000...

Matlab數學公式

三角函式和雙曲函式 名稱含義 名稱含義 名稱含義 sin正弦 csc餘割 atanh 反雙曲正切 cos余弦 asec 反正割acoth 反雙曲餘切 tan正切 acsc 反餘割sech 雙曲正割 cot餘切 sinh 雙曲正弦 csch 雙曲餘割 asin 反正弦cosh 雙曲余弦 asech 反...