ToB企服应用市场:ToB评测及商务社交产业平台

标题: 洛谷P1209补缀牛棚 Barn Repair [打印本页]

作者: 河曲智叟    时间: 2024-8-6 13:25
标题: 洛谷P1209补缀牛棚 Barn Repair
[USACO1.3] 补缀牛棚 Barn Repair

题目描述

在一个月黑风高的暴风雨夜,Farmer John 的牛棚的屋顶、门被吹飞了 好在许多牛正在度假,以是牛棚没有住满。
牛棚一个紧挨着另一个被排成一行,牛就住在内里过夜。有些牛棚里有牛,有些没有。 全部的牛棚有雷同的宽度。   宽度为1
自门遗失以后,Farmer John 必须尽快在牛棚之前竖立起新的木板。他的新木材供应商将会供应他任何他想要的长度,但是吝啬的供应商只能提供有限数目的木板。 Farmer John 想将他购买的木板总长度减到最少。
给出 \(m,s,c\),表示木板最大的数目、牛棚的总数、牛的总数;以及每头牛所在牛棚的编号,请算出拦住全部有牛的牛棚所需木板的最小总长度。
输入格式

一行三个整数 \(m,s,c\),意义如题目描述。
接下来 \(c\) 行,每行包罗一个整数,表示牛所占的牛棚的编号。
输特别式

输出一行一个整数,表示所需木板的最小总长度。
样例 #1

样例输入 #1
  1. 4 50 18
  2. 3
  3. 4
  4. 6
  5. 8
  6. 14
  7. 15
  8. 16
  9. 17
  10. 21
  11. 25
  12. 26
  13. 27
  14. 30
  15. 31
  16. 40
  17. 41
  18. 42
  19. 43
复制代码
样例输出 #1
  1. 25
复制代码
提示

【数据范围】
对于 \(100\%\) 的数据,\(1\le m \le 50\),\(1\le c \le s \le 200\)。
USACO Training Section 1.3
思路:

  1. for (int i = 1; i <= c; i++) cin >> a[i];
  2. //先给每个有牛的牛棚分配一块木板,如果最大木板数量不够用的话,就得
  3. //将某些木板连起来了。
  4. int ans = c;
  5. sort(a + 1, a + 1 + c);
复制代码
[code]        for (int i = 2; i  m >> s >> c;        for (int i = 1; i > a;        //先给每个有牛的牛棚分配一块木板,假如最大木板数量不敷用的话,就得        //将某些木板连起来了。        int ans = c;        sort(a + 1, a + 1 + c);        for (int i = 2; i




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4