38 修理牛棚

2021-10-04 07:15:23 字數 1069 閱讀 3333

在乙個暴風雨的夜晚,農民約翰的牛棚的屋頂、門被吹飛了。 好在許多牛正在度假,所以牛棚(牛棚的總數s:1<= s<=200)沒有住滿。 剩下的牛乙個緊挨著另乙個被排成一行安置在有屋頂的牛棚來過夜。 所以有些牛棚裡有牛,有些沒有。

所有的牛棚有相同的寬度,且寬度設為1。 因為有些門遺失,農民約翰需要架起新的木板作為門。 他的新木材**者將會**他任何他想要的長度,但是**者只能提供有限數目的木板。 農民約翰想將他購買的木板總長度減到最少。

計算攔住所有有牛的牛棚所需木板的最小總長度。

輸出所需木板的最小總長度作為的答案。

說明:攔住乙個牛棚需要的木板長度為1,攔住相鄰的三個牛棚則需要木板長度為3。

比如有牛的牛棚編號為:

3 5 8 10 11

並且只能使用兩塊木板,

則第一塊木板從3到5,長度為3,

第二塊木板從8到11,長度為4,

因此,需要木板的總長度為7。

第 1 行: m 和 c(用空格分開)

第 2 到 c+1行: 每行包含乙個整數,表示牛所佔的牛棚的編號。

其中:可能買到的木板最大的數目:m(1<= m<=50);

需要安置的牛的數目c(1<= c <=s)

安置後牛所在的牛棚的編號stall_number(1<= stall_number <= s)。

單獨的一行包含乙個整數表示所需木板的最小總長度

3 5246

87c原始碼:

#include

intmain()

for(i=

0;i1;i++

)//間距

for(i=

0;i1;i++

)for

(j=0

;j2;j++)if

(b[j]

) t=1;

//一塊木板

s=a[n-1]

-a[0]+

1;//最大長度

i=0;while

(ti++;}

printf

("%d\n"

,s);

}return0;

}

Barn Repair修理牛棚

在乙個暴風雨的夜晚,農民約翰的牛棚的屋頂 門被吹飛了.好在許多牛正在度假,所以牛棚沒有住 滿.剩下的牛乙個緊挨著另乙個被排成一行來過夜.有些牛棚裡有牛,有些沒有.所有的牛棚有相 同的寬度.自門遺失以後,農民約翰很快在牛棚之前豎立起新的木板.他的新木材 者將會 他任何他想要的長度,但是 者只能提供有限...

USACO 修理牛棚

同樣是一道貪心題,我的思路是用乙個陣列存下所有的空擋,對空擋進行排序,然後再在總長度中減去前m 1 大的空檔長度。關鍵還是理解題意。貌似洛谷 oj不支援 int min 之類的。還有要對初始資料排一次序,害我 wa了一次。include include includeusing namespace ...

修理牛棚 Barn Repair

題目描述 在乙個夜黑風高,下著暴風雨的夜晚,farmer john的牛棚的屋頂 門被吹飛了。好在許多牛正在度假,所以牛棚沒有住滿。牛棚乙個緊挨著另乙個被排成一行,牛就住在裡面過夜。有些牛棚裡有牛,有些沒有。所有的牛棚有相同的寬度。自門遺失以後,farmer john必須盡快在牛棚之前豎立起新的木板。...