在乙個暴風雨的夜晚,農民約翰的牛棚的屋頂、門被吹飛了。 好在許多牛正在度假,所以牛棚(牛棚的總數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必須盡快在牛棚之前豎立起新的木板。...