2567 谷仓维修
2567 谷倉(cāng)維修
?時(shí)間限制: 1 s ?空間限制: 32000 KB ?題目等級(jí) : 白銀 Silver ? 題目描述?Description在一個(gè)夜黑風(fēng)高,下著暴風(fēng)雨的夜晚,farmer John的牛棚的屋頂、門被吹飛了。 好在許多牛正在度假,所以牛棚沒(méi)有住滿。 牛棚一個(gè)緊挨著另一個(gè)被排成一行,牛就住在里面過(guò)夜。 有些牛棚里有牛,有些沒(méi)有。 所有的牛棚有相同的寬度。 自門遺失以后,farmer John必須盡快在牛棚之前豎立起新的木板。 他的新木材供應(yīng)商將會(huì)供應(yīng)他任何他想要的長(zhǎng)度,但是吝嗇的供應(yīng)商只能提供有限數(shù)目的木板。 farmer John想將他購(gòu)買的木板總長(zhǎng)度減到最少,請(qǐng)你幫farmer John算出最少需要多少木板(每個(gè)牛棚占一塊木板)。
輸入描述?Input Description- 第 1 行: 木板最大的數(shù)目M ,牛棚的總數(shù)S 和 牛的總數(shù)C(用空格分開(kāi))
- 第 2 到 C+1行: 每行包含一個(gè)整數(shù),表示牛所占的牛棚的編號(hào)。
單獨(dú)的一行包含一個(gè)整數(shù)表示所需木板的最小總長(zhǎng)度。
樣例輸入?Sample Input 4 50 18 3 4 6 8 14 15 16 17 21 25 26 27 30 31 40 41 42 43 樣例輸出?Sample Output 25 數(shù)據(jù)范圍及提示?Data Size & Hint給出:可能買到的木板最大的數(shù)目M(1<= M<=50);牛棚的總數(shù)S(1<= S<=200); 牛棚里牛的總數(shù)C(1 <= C <=S);和牛所在的牛棚的編號(hào)stall_number(1 <= stall_number <= S),計(jì)算攔住所有有牛的牛棚所需木板的最小總長(zhǎng)度。 輸出所需木板的最小總長(zhǎng)度作為答案。
思路:算出來(lái)兩兩相鄰之間的距離,并計(jì)算出第一個(gè)牛棚到最后一個(gè)牛棚的距離和,因?yàn)榭梢杂胢個(gè)木板,所以只允許中間空(m-1)個(gè)空隙,所以,求出最大的空隙,減去即可;
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 5 int m,s,c,h; 6 int num[1010]; 7 int t[1010]; 8 int ans,k,n; 9 bool cmp(int a,int b) 10 { 11 return a>b; 12 } 13 int main() 14 { 15 cin>>m>>s>>c; 16 for(int i=1;i<=c;++i) 17 cin>>num[++h]; 18 sort(num+1,num+h+1); 19 ans=num[h]-num[1]+1; 20 for(int i=1;i<h;++i) 21 { 22 t[i]=num[i+1]-num[i]-1; 23 } 24 sort(t+1,t+h+1,cmp); 25 for(int i=1;i<m;++i) 26 { 27 ans-=t[i]; 28 } 29 cout<<ans; 30 return 0; 31 }?
轉(zhuǎn)載于:https://www.cnblogs.com/mjtcn/p/6764438.html
總結(jié)
- 上一篇: CentOs7安装JDK/Tomcat/
- 下一篇: 图书管理系统活动图和时序图