洛谷P1209 [USACO1.3]修理牛棚 Barn Repair

跳转题意

分析:也是标准的贪心题,木板长度的最差情况是a[n]-a[1],然后我们算一下木板在哪个地方断掉可以减少最大的距离就OK

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<algorithm>
 5 
 6 using namespace std;
 7 
 8 int a[205],n,m,s,c[205];
 9 
10 inline bool cmp(int x,int y)
11 {
12     return x>y;
13 }
14 
15 int main()
16 {
17     scanf("%d%d%d",&m,&n,&s);
18     for(int i=1;i<=s;i++)
19         scanf("%d",&a[i]);
20     if(m>=s)
21     {
22         printf("%d",s);
23         return 0;
24     }
25     sort(a+1,a+s+1);
26     int ans=a[s]-a[1]+1;
27     for(int i=2;i<=n;i++)
28         c[i]=a[i]-a[i-1]-1;
29     sort(c+1,c+n+1,cmp);
30     for(int i=1;i<=m-1;i++)
31         ans-=c[i];
32     printf("%d",ans);
33     return 0;
34 }
P1209 code

猜你喜欢

转载自www.cnblogs.com/Hoyoak/p/11361135.html