the reason of failure:1、有可能木板会比牛棚的数量多,这个需要考虑到位.

thinking:求最短所使用的木板长度,如果只用一个木板,便是从最小有牛的牛棚编号到最大有牛的牛棚编号+1的长度,如果有多出的木板求便可以把2个牛棚之间的最大距离找出来然后减掉,这样总木板长度就能最大的减小了.

题目:

Barn Repair 修理牛棚
在一个暴风雨的夜晚,农民约翰的牛棚的屋顶、 门被吹飞了. 好在许多牛正在度假,所以牛棚没有住
满. 剩下的牛一个紧挨着另一个被排成一行来过夜. 有些牛棚里有牛,有些没有. 所有的牛棚有相
同的宽度. 自门遗失以后,农民约翰很快在牛棚之前竖立起新的木板. 他的新木材供应者将会供应
他任何他想要的长度,但是供应者只能提供有限数目的木板. 农民约翰想将他购买的木板总长度减
到最少. 给出 M(1<= M<=50),可能买到的木板最大的数目;S(1<= S<=200),牛棚的总数;C(1 <= C
<=S) 牛棚里牛的数目,和牛所在的牛棚的编号 stall_number(1 <= stall_number <= S),计算拦住
所有有牛的牛棚所需木板的最小总长度. 输出所需木板的最小总长度作为的答案.
PROGRAM NAME: barn1
INPUT FORMAT
第 1 行: M , S 和 C(用空格分开)
第 2 到 C+1 行: 每行包含一个整数,表示牛所占的牛棚的编号.
SAMPLE INPUT (file barn1.in)
4 50 18
3
4
6
8
14
15
16
17
21
25
26
27
30
31
40
41
42
43
OUTPUT FORMAT
单独的一行包含一个整数表示所需木板的最小总长度.
SAMPLE OUTPUT (file barn1.out)
25 {一种最优的安排是用板拦住牛棚 3-8,14-21,25-31,40-43.}

贪心代码:

/*
PROG: barn1
LANG: C++
ID: me
*/
#include <bits/stdc++.h>
using namespace std;int cmp1(int a,int b){return b<a;
}
int main(){freopen("barn1.in","r",stdin);freopen("barn1.out","w",stdout);int n,m,o;cin >> n >> m >> o;int i,j,k,l,sum;int niu[o],cha[o];memset(niu,0,sizeof(niu));memset(cha,0,sizeof(cha));for(i=0;i<o;i++)cin >> niu[i];sort(niu,niu+o);int a=niu[0];int b;for(i=1;i<o;i++){b=niu[i];cha[i-1]=b-a;a=b;}sort(cha,cha+o-1,cmp1);sum=niu[o-1]-niu[0]+1;if(o>n){for(i=0;i<n-1;i++)sum-=cha[i]-1;cout << sum << endl;}else{cout << o << endl;}return 0;
}

barn1uscao1.3 -贪心相关推荐

  1. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  2. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  3. Too Many Segments CF595D 贪心乱搞

    传送门! 比赛的时候没有时间写了,看看了看大佬的代码,学习学习. 一开始实验室大佬说是用差分写的,但是看了代码发现打cf的人大家都是stl狂魔! 贪心思路:区间按照左端点排序,从1~2e5遍历每一个点 ...

  4. Roundgod and Milk Tea 贪心

    这个题好像可以用一种类似与置换的贪心方法来做~ sum记为剩余奶茶,一开始sum等于奶茶和 ans记录已经喝的奶茶数 不用排序,我们就从前往后直接处理,考虑的是每一个班最多可以喝多少杯奶茶 就是从剩余 ...

  5. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  6. 贪心:expedition 最优加油方法

    已知一条公路上,有一个起点与一个终点,这之间有n个加油站;已知从这n个加 油站到终点的距离d与各个加油站可以加油的量l,起点位置至终点的距离L与起 始时刻油箱中汽油量P;假设使用1个单位的汽油即走1个 ...

  7. 贪心:Burst Balloons 最少次数完成射击气球

    已知在一个平面上有一定数量的气球,平面可以看作一个坐标系,在平面的x轴的不同位 置安排弓箭手向y轴方向射箭,弓箭可以向y轴走无穷远;给定气球的宽度 xstart ≤ x ≤ xend,问至少需要多少弓 ...

  8. 贪心:jump 游戏(获取最少跳跃的次数以及跳跃路径)

    一个数组存储了非负整型数据,数组中的第i个元素a[i],代表了可以从数组第i个 位置最多向前跳跃a[i]步;已知数组各元素的情况下,求是否可以从数组的第0个位置跳跃到数组的最后一个元素的位置,返回最少 ...

  9. 贪心:Jump Game 跳跃游戏

    一个数组存储了非负整型数据,数组中的第i个元素a[i],代表了可以从数组第i个 位置最多向前跳跃a[i]步;已知数组各元素的情况下,求是否可以从数组的第0个位置跳跃到数组的最后一个元素的位置,返回是t ...

最新文章

  1. 福利 | 放送AI华人库试用名额!专项代码找到领域专家
  2. Win7旗舰版系统右键菜单响应速度很慢会延迟一段时间
  3. 单片机 PWM输出 c
  4. hdu 6962 I love tree 线段树维护二次函数
  5. 数字化转型知识方法系列之五:数字化转型战略
  6. [转人工智能工程师学习路线及具备的5项基本技能
  7. JavaScript-变量的作用域 、const、let
  8. java 两层while_java – while while循环满足2个条件之一
  9. python怎么控制小数点位数_谈谈关于Python里面小数点精度控制的问题
  10. .NET中的内存管理,GC机制,内存释放过程
  11. 推荐5款好用的安卓版RSS应用
  12. 中外大学及大学生活面貌的实录(计算机专业大一学生有感网摘记录) (原创,2013年2月21日不断更新中)...
  13. 3701汉化包 axure r9_AXURE9最全的WEB设计元件库(分享版).rplib
  14. DNS无法解析IP_DNS之基本原理
  15. 匈牙利为庆贺第17届奥运会而发行的纪念邮票
  16. 移除未排序链表中的重复节点,保留最开始出现的节点
  17. k8s搭建drone
  18. 能否打开人工智能的“黑箱”?
  19. 为什么group by后面不能使用列的别名
  20. Java实现 蓝桥杯 算法提高 秘密行动

热门文章

  1. 计算机应用格式工厂部分教案,格式工厂
  2. IP地址的配置与运用,全网通
  3. Java里面是先算乘除后算加减_java.怎么实现字串符的先乘除后加减阿
  4. 3.16下午 王希伟网课+笔记
  5. Qt编写可视化大屏电子看板系统30-模块8物料管理
  6. laravel 5.6 请教邮件中的cc,bcc是什么意思,有什么用?
  7. 按键精灵打怪学习-自动回城路线的判断
  8. 半年学好英语能有多简单?
  9. 考研英语 常见短语及替换
  10. 【mmaction2 入门教程 01】 slowfast训练配置 日志分析 测试结果分析