luogu P1120 小木棍 資料加強版

2022-05-11 06:06:09 字數 1458 閱讀 9296

喬治有一些同樣長的小木棍,他把這些木棍隨意砍成幾段,直到每段的長都不超過50。

現在,他想把小木棍拼接成原來的樣子,但是卻忘記了自己開始時有多少根木棍和它們的長度。

給出每段小木棍的長度,程式設計幫他找出原始木棍的最小可能長度。

輸入格式:

輸入檔案共有二行。

第一行為乙個單獨的整數n表示砍過以後的小木棍的總數,其中n≤65

(管理員注:要把超過50的長度自覺過濾掉,坑了很多人了!)

第二行為n個用空個隔開的正整數,表示n根小木棍的長度。

輸出格式:

輸出檔案僅一行,表示要求的原始木棍的最小可能長度

輸入樣例#1: 複製

9

5 2 1 5 2 1 5 2 1

輸出樣例#1: 複製

6

2017/08/05

資料時限修改:

-#17 #20 #22 #27 四組資料時限500ms

-#21 #24 #28 #29 #30五組資料時限1000ms

其他時限改為200ms(請放心食用)

解題報告:

一道很棒的搜尋題,要加一堆剪枝才能過,提高一下暴力的姿勢水平.

#include#include#include#includeusing namespace std;

int a[66],used[66];

int n,cnt,x,sum,maxx;

#define for(s,t) for(register int i=s;i<=t;++i)

inline void dfs(int tot,int t,int sec,int now)

int main()

sort(a+1,a+cnt+1,cmp);

for(maxx,sum/2)if(sum%i==0)dfs(0,0,i,1);

printf("%d\n",sum);

return 0;

}

Luogu P1120 小木棍 加強版

喬治有一些同樣長的小木棍,他把這些木棍隨意砍成幾段,直到每段的長都不超過 50 現在,他想把小木棍拼接成原來的樣子,但是卻忘記了自己開始時有多少根木棍和它們的長度。給出每段小木棍的長度,程式設計幫他找出原始木棍的最小可能長度。hhhh 這題可真是毒瘤啊 qwq 首先我們先考慮如何 dfs 即 dfs...

洛谷1120小木棍

題目描述 喬治有一些同樣長的小木棍,他把這些木棍隨意砍成幾段,直到每段的長都不超過50。現在,他想把小木棍拼接成原來的樣子,但是卻忘記了自己開始時有多少根木棍和它們的長度。給出每段小木棍的長度,程式設計幫他找出原始木棍的最小可能長度。輸入輸出格式 輸入格式 輸入檔案共有二行。第一行為乙個單獨的整數n...

搜尋 P1120 小木棍

喬治有一些同樣長的小木棍,他把這些木棍隨意砍成幾段,直到每段的長都不超過5050。現在,他想把小木棍拼接成原來的樣子,但是卻忘記了自己開始時有多少根木棍和它們的長度。給出每段小木棍的長度,程式設計幫他找出原始木棍的最小可能長度。共二行。第一行為乙個單獨的整數n表示砍過以後的小木棍的總數,其中n 65...