蓝桥集训之修理牛棚
-
核心思想:贪心
- 先把所有牛棚合成一块木板
- 然后将所有间隙大小求出 排序找到最大的n-1个
- 总长度 - n-1个间隙 得到剩下n个木板总长度
-
#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 210;int a[N],space[N];int n,m,c;int main(){cin>>n>>m>>c;for(int i=0;i<c;i++) cin>>a[i];sort(a,a+c); for(int i=1;i<c;i++) space[i] = a[i]-a[i-1]-1; //求间隙长度int res = a[c-1] - a[0] + 1; //总长度//从大到小排间隙sort(space+1,space+c,greater<int>());for(int i=1;i<n;i++) res -= space[i];cout<<res<<endl;return 0;}