oj 木棍問題

2021-08-28 07:50:55 字數 998 閱讀 3675

題目如圖所示:

為了避免處理小數誤差,將資料*100處理,二分查詢找到測試長度,然後直到二分區間左右端點相鄰,再測試哪個端點滿足要求,最後換成保留2位小數處理。

如下:

//

// testb.c

// testb

//// created by ke tang on 2018/9/19.

//#include #include "stdlib.h"

int numvalid (float,int,int,int*);

int numvalid (float mid,int n,int m,int* array)//測試當前測試長度是否可以滿足擷取數量的要求

else //測試長度過長

}int main()

//取得最小值

//initial

int minlength = 0;//二分查詢區間的左端

int maxlength = min;//二分查詢區間的右端

int mid = min ;

int ans,ansleft,ansright;

while (minlength+1

else if (ans == 1)

}//最後判斷二分區間的哪個端點滿足數量條件

ansleft = numvalid(minlength, n, m, &array[0]);

ansright = numvalid(maxlength, n, m, &array[0]);

if (ansright == 1&&ansleft==1)//兩端均滿足時,取大

else if (ansleft==1&&ansright!=1)

else if (ansleft!=1&&ansright==1)

return 0;

}

遞迴 木棍問題

問題描述 喬治拿來一組等長的木棒,將它們隨機地裁斷,使得每一節木棒的長度都不超過50 個 長度單位。然後他又想把這些木棒恢復到裁截前的狀態,但忘記了初始時有多少木棒以及木 棒的初始長度。請你設計乙個程式,幫助喬治計算木棒的可能最小長度。每一節木棒的長度 都用大於零的整數表示。輸入資料 由多個案例組成...

問題 D 木棍(dp)

題目描述 在乙個原始部落,有一些人要去打獵了,每個人都要挑選自己的工具 兩根木棍。乙個用作遠距離投擲攻擊,乙個用作近距離搏鬥。但是每個人都想挑到最好的,但這是不可能的。但是為了讓多數人滿意,也為了減少大家的矛盾。部落領袖設計了乙個矛盾指數,這個指數就是每個人的不舒服指數和,不舒服指數就 l1 l2 ...

5只螞蟻走木棍問題

有一根27厘公尺的細木桿,在第3厘公尺 7厘公尺 11厘公尺 17厘公尺 23厘公尺這五個位置上各有乙隻螞蟻。木桿很細,不能同時通過乙隻螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭,但不會後退。當任意兩隻螞蟻碰頭時,兩隻螞蟻會同時調頭朝反方向走。假設螞蟻們每秒鐘可以走一厘公尺的距...