Year of the Cow【贪心】

博客主要介绍了如何使用贪心算法解决编程竞赛平台luogu上的P7412问题。解题思路包括先对牛年进行排序,处理相邻牛年组合,避免穿越,并将当前牛年0考虑在内。通过选取最大k-1个穿越年份,计算总耗费年份。
摘要由CSDN通过智能技术生成

>Link

luogu P7412


>Description
在这里插入图片描述


>解题思路

首先肯定要从大到小排个序
我们把每个祖先所在的年份的前后两个牛年处理出来,放进另一个数组里,每一对对应的牛年之间是肯定不能穿越的,需要耗费年份。有一个处理,如果有两对牛年首尾相连,就把他们合并成一对,因为他们之间也是肯定不用穿越的。
最后我们还要把现在的牛年0放在后面
对于不是一对的前后两个牛年,它们之间要么穿越,要么花费前面-后面的年份,所以我们把所有这种情况排个序,取最大的 k − 1 k-1 k1个穿越(还有一次机会是从0穿越到最久之前的牛年),剩下花费的年份就全部加上就好了


>代码

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 200000
#define LL long long
using namespace std;

int n, k, m, tot;
LL a[N]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值