摘要: 原题 题目链接 题目分析 有点难度的贪心题,首先考虑在相同时间t内怎么能使损失最少,可以这样来控制相同时间,设想一个子问题,如果只有两头牛,那最后结束时间肯定是一样的,这时候怎么使损失最少,就直接比较t1*d2和t2*d1就行了,如果是第一个小就选牛1,否则选牛二.扩展来讲,就是对所有牛排序,对于牛 阅读全文
posted @ 2019-08-24 15:19 VBL 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 数学贪心题,每次取两个最大的合成,合成到最后即可使值最大. 代码 阅读全文
posted @ 2019-08-24 15:10 VBL 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 有点难码的贪心题,策略是先能用大面额的就用大面额,然后凑出的价格不要高于c,如果凑到最后不能刚好凑完c,则能用小面额补就用小面额补,目的是让凑出的价格尽可能接近c,这样能少浪费钱,具体实现就是先从现有硬币里按照上述规则找一套凑法,然后不断用这个凑法凑直到硬币不足为止,接着又 阅读全文
posted @ 2019-08-24 15:01 VBL 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 无脑贪心枚举题,只是码起来麻烦,想清楚后基本没什么问题. 代码 阅读全文
posted @ 2019-08-23 18:01 VBL 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 简单贪心题,从第一周开始,每过一周就把当周酸奶的生产价格加入优先队列中,不过由于存储要钱,所以加入优先队列需要一点额外操作.想一下当i周时,第一周生产的酸奶加上存储成本c1=c1+s*(i-1),第二周生产的酸奶同理,c2=c2+s*(i-2)...我们要从中选处理后价格最 阅读全文
posted @ 2019-08-23 17:58 VBL 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 分开处理,可以按起始时间给所有牛排个序,然后从小到大遍历所有牛,每遍历一头牛i就把他加入到一个优先队列中,然后从优先队列中取出结束时间最大的牛j,如果牛j的结束时间比牛i的起始时间小,那证明轮到该牛时已经可以多出一个桶了,于是可以把牛j从优先队列从弹出,并让桶的数量--,注 阅读全文
posted @ 2019-08-23 11:56 VBL 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 把每个点处理成一个区间[li,ri],其中li表示x-sqrt(d*d-y*y),ri表示x+sqrt(d*d-y*y),前提是d>=y,否则雷达无法检测到该点直接输出-1.处理完之后,把所有区间按左端点值排个序,排完后每取一个区间[s,t],就把其他区间中si<t的过滤掉 阅读全文
posted @ 2019-08-23 11:19 VBL 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 原题 原题链接 题目分析 先按起始时间排序,然后规定一个变量来记录当前时间,假设当前时间是t(当前时间还未被清理),那就在排完序的区间里把起始时间小于t的牛依次加入到一个优先队列中,在优先队列里每次都取终止时间最长的牛,并以此来更新当前时间.假设取出一种牛[si,ti],si<t,则取出后t=ti+ 阅读全文
posted @ 2019-08-23 10:25 VBL 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 原题 题目链接 题目分析 bfs限制步数后爆搜就行了,答案用set维护(用来去重). 代码 阅读全文
posted @ 2019-08-22 21:22 VBL 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 原题 题目连接 题目分析 这道题的难点在于搜的技巧,仔细观察会发现有些规律,就如样例一 3 1 2 4怎么得到16的,事实上是3*c(0,3)+1*c(1,3)+2*c(2,3)+4*c(3,3),具体为什么是这样可以参考杨辉三角,看每个数字贡献多少值即可.因此直接用全排列搜,搜到答案的话肯定是字典 阅读全文
posted @ 2019-08-22 21:14 VBL 阅读(95) 评论(0) 推荐(0) 编辑