遞迴 木棍問題

2021-09-07 21:56:29 字數 1320 閱讀 5990

問題描述

喬治拿來一組等長的木棒,將它們隨機地裁斷,使得每一節木棒的長度都不超過50 個

長度單位。然後他又想把這些木棒恢復到裁截前的狀態,但忘記了初始時有多少木棒以及木

棒的初始長度。請你設計乙個程式,幫助喬治計算木棒的可能最小長度。每一節木棒的長度

都用大於零的整數表示。

輸入資料

由多個案例組成,每個案例包括兩行。第一行是乙個不超過64 的整數,表示裁截之後

共有多少節木棒。第二行是經過裁截後,所得到的各節木棒的長度。在最後乙個案例之後,

是零。輸出要求

為每個案例,分別輸出木棒的可能最小長度,每個案例佔一行。

輸入樣例

95 2 1 5 2 1 5 2 1

41 2 3 4

0輸出樣例65

一看到這道題目感覺有些熟悉,後來才發現是一年零兩個月前我曾經遇到過道題。但是當時沒弄明白。呵呵。 這次一開始看到這道題的時候還是沒有思路。還是看了解析後才有思路。

#include #include 

#define max 64

intsticks[max];

intused[max];

intnsticknum,len;

int cmp(const

void *elema, const

void *elemb);

int concatenate(int nleftsticks,int

nleftlength);

intmain()

qsort(sticks,nsticknum,

sizeof(int

),cmp);

//sum

nsum=0

;

for(i = 0; i < nsticknum; i++)

nsticklength = sticks[0]; //

the length of stick

for(len = nsticklength; len <= nsum/2; len++)

}}

return0;

}int cmp(const

void *elema, const

void *elemb)

int concatenate(int nleftsticks,int

nleftlength)

}return0;

}2013/5/19

19:19

oj 木棍問題

題目如圖所示 為了避免處理小數誤差,將資料 100處理,二分查詢找到測試長度,然後直到二分區間左右端點相鄰,再測試哪個端點滿足要求,最後換成保留2位小數處理。如下 testb.c testb created by ke tang on 2018 9 19.include include stdlib...

問題 D 木棍(dp)

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

5只螞蟻走木棍問題

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