第十一章 演算法的時間複雜度

2021-07-31 04:59:52 字數 2186 閱讀 1686

1:派

總時間限制: 

1000ms 

記憶體限制: 

65536kb

描述 我的生日要到了!根據習俗,我需要將一些派分給大家。我有n個不同口味、不同大小的派。有f個朋友會來參加我的派對,每個人會拿到一塊派(必須乙個派的一塊,不能由幾個派的小塊拼成;可以是一整個派)。

我的朋友們都特別小氣,如果有人拿到更大的一塊,就會開始抱怨。因此所有人拿到的派是同樣大小的(但不需要是同樣形狀的),雖然這樣有些派會被浪費,但總比搞砸整個派對好。當然,我也要給自己留一塊,而這一塊也要和其他人的同樣大小。

請問我們每個人拿到的派最大是多少?每個派都是乙個高為1,半徑不等的圓柱體。

輸入第一行包含兩個正整數n和f,1 ≤ n, f ≤ 10 000,表示派的數量和朋友的數量。

第二行包含n個1到10000之間的整數,表示每個派的半徑。

輸出輸出每個人能得到的最大的派的體積,精確到小數點後三位。

樣例輸入

3 3

4 3 3

樣例輸出

25.133

/* 月明星稀 烏鵲南飛 繞樹三札 何枝可依*/

/*這題的實質就是從大到小窮舉(但是會超時 得用二分查詢 double的數保證精確度在1e-6認為相等 不用再繼續二分) */

#include #include #include #include using namespace std;

const double pi = acos(-1);

const double eps = 1e-6;

int n, f;

double r[10001]; //半徑

int maxv;

bool valid(double v)

if (total >= f)

return true;

return false;

}int main()

maxv = r[0] * r[0];

for (int i = 1; i < n; i++)

} double l = 0;

double r = maxv;

while (r - l > eps)

else

} cout << fixed << setprecision(3) << l*pi << endl;

return 0;

}

總時間限制: 

1000ms 

記憶體限制: 

65536kb

描述 農夫約翰是乙個精明的會計師。他意識到自己可能沒有足夠的錢來維持農場的運轉了。他計算出並記錄下了接下來 n (1 ≤ n ≤ 100,000) 天裡每天需要的開銷。

約翰打算為連續的m (1 ≤ m ≤ n) 個財政週期建立預算案,他把乙個財政週期命名為fajo月。每個fajo月包含一天或連續的多天,每天被恰好包含在乙個fajo月裡。

約翰的目標是合理安排每個fajo月包含的天數,使得開銷最多的fajo月的開銷盡可能少。

輸入第一行包含兩個整數n,m,用單個空格隔開。

接下來n行,每行包含乙個1到10000之間的整數,按順序給出接下來n天裡每天的開銷。

輸出乙個整數,即最大月度開銷的最小值。

樣例輸入

7 5

100400

300100

500101

400

樣例輸出

500

/* 這一期的題目感覺好難。。自己是沒做出來的 參考的guo wei老師的答案*/
#include #include #include #include using namespace std;

int n, m;

int cost[100100];

bool valid(int c)

else

curcost += cost[i];

} return true;

}int main()

int lastvalid = 0;

while (l <= r)

else

l = mid + 1;

} cout << lastvalid;

return 0;

}

演算法時間複雜度空間複雜度

演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...

演算法 時間複雜度 空間複雜度

1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...

演算法的時間複雜度 空間複雜度

時間複雜度和空間複雜度是度量演算法效率的常用指標 事後統計,不常用 事前統計影響因素 演算法策略 問題規模 程式語言 質量 機器執行指令的速度 撇開軟硬體的影響,演算法執行工作量的大小只依賴於問題的規模 通常用整數n表示 乙個演算法是由控制結構 順序,分支,迴圈三種 和原操作 指固有資料型別的操作 ...