1 6 輕鬆熱身

2021-09-19 10:41:48 字數 3007 閱讀 2434

n根棍子,i號棍子的長度為ai。從中選出3根棍子組成周長盡可能長的三角形。輸出最大的周長,如果不能組成三角形,輸出0。

限制條件:3 <= n <= 100;1 <= ai <= 10^6

o(n^3)

#include

using namespace std;

int numberset[

100]

;int

main()

for(

int i =

0;i < num;i++)}

}}cout << ans << endl;

return0;

}

白書上說還有一種o(nlogn)的做法,查了一下

與上面的重要區別就是讀入邊長後先進行排序,因為我們要做的判斷是兩邊之和》第三邊(max),那麼排序後如果總的max值比其後兩邊長的和還要大,就不必再依次判斷,含有這個總max的組合一定是無法組成三角形的。這是就再重複上面的過程,對次大,次次大……進行判斷。同樣的,如果max比其後兩邊的和要小,一次判斷說明可以組成三角形。

(因為我們的題目求的是周長盡可能大,也就是邊長的選用要盡可能大)

#include

#include

using namespace std;

int numberset[

100]

;int

main()

sort

(numberset, numberset + num)

;for

(int i = num -

1;i >=

2;i--)}

cout << ans << endl;

return0;

}

n只螞蟻以每秒1cm的速度在長為lcm的竿子上爬行。當螞蟻爬到竿子的端點時就會掉落。由於竿子太細,兩隻螞蟻相遇時,它們不能交錯通過,只能各自反向爬回去。對於每只螞蟻,我們知道它距離竿子左端的距離xi,但不知道它當前的朝向。請計算所有螞蟻落下竿子所需的最短時間和最長時間。

1 <= l <= 10^6

1 <= n <= 10^6

0 <= xi <= l

o(2^n)窮竭搜尋列舉所有螞蟻的初始朝向組合

o(n)

#include

#include

using namespace std;

int l,

//桿子長度

n;//螞蟻隻數

int a[

100000];

intmain()

sort

(a, a + n)

; cout <<

"min = "

<< a[0]

; cout <<

"max = "

<< a[n-1]

;return0;

}

這裡有乙個問題,題目輸入給出的距離是針對左端點的。而我們的螞蟻是可以雙向移動的,所以如果用sort只是找到了距離左端點最近和最遠的兩隻螞蟻,但是如果他們可以往右走,結果完全可以不同。

#include

#include

using namespace std;

int l,

//桿子長度

n,//螞蟻隻數

}

binary_search的實現

FC坦克大戰熱身

學了近三個月的彙編級底層知識,期間大部分時間都是看書,看書,看書.編碼才是王道啊,暫時不 不務正業 了,決定持續做一些小專案來鍛鍊自己的物件導向設計能力,實踐設計模式以及開始學uml.這兩周多花了每天深夜和週末的空閒時間,基本模仿出了fc上的坦克大戰的樣子,用的是hge 2d引擎.關卡編輯器是用mf...

軟工熱身作業

專案內容 這個作業屬於哪個課程 2021春季軟體工程 這個作業的要求在 第一次閱讀作業 我在這個課程的目標是 初步獲得軟體工程師的能力 這個作業在哪個具體方面幫助我實現目標 激發程式設計熱情,審視自身情況 1.你為什麼選擇計算機專業?你認為你的條件如何?和這些博主比呢?選擇計算機專業主要有兩個原因,...

軟工熱身作業

專案內容 這個作業屬於哪個課程 2021春季軟體工程 羅傑 任健 這個作業的要求在 2021年軟工 熱身閱讀作業 我在這個課程的目標是 認真完成課程要求並提高相應能力 這個作業在哪個具體方面幫助我實現目標 對自己有乙個更為清晰的認識 scalers表示大學生上課一定要認真聽講,這一點我並不是完全贊同...