2021.8.19提高B组模拟9T2 + P7412 [USACO21FEB] Year of the Cow (贪心)

Posted SSL_LKJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021.8.19提高B组模拟9T2 + P7412 [USACO21FEB] Year of the Cow (贪心)相关的知识,希望对你有一定的参考价值。

Year of the Cow

题目传送门

题目

输入样例

5 3
101
85
100
46
95

输出样例

36

解题思路

这题就是贪心思路中会掺杂一些样例分析

先将每个节点的年份更改为前一个牛年(如果当前节点为牛年就不变)

108 96 108 48 96

从小到大排序

差值

48 96 96 108 108
48 48  0 32  0(第一个4848-0=48

差值从大到小排序

48 48 32 0 0

前k-1个值 ,并将他们减去 12(因为要过12年才能继续传送)

最大值 108 分别减去他们

即可求出答案

108-48-12-48-12=36

AC代码

#include<algorithm>
#include<cstdio>
using namespace std;
int n,k,ans,a[70005],b[70005];
bool cmp(int x,int y)
{
	return x>y;
}
int main()
{
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++)//求年份
		scanf("%d",&a[i]),a[i]=(a[i]/12+1)*12;
	sort(a+1,a+n+1);//排序(小到大)
	ans=a[n];//初值
	for(int i=1;i<=n;i++)//求差值
		b[i]=a[i]-a[i-1];
	sort(b+1,b+n+1,cmp);//排序(大到小)
	for(int i=1;i<k;i++)//求答案
		ans-=max(0,b[i]-12);
	printf("%d",ans);
	return 0;
}

谢谢

以上是关于2021.8.19提高B组模拟9T2 + P7412 [USACO21FEB] Year of the Cow (贪心)的主要内容,如果未能解决你的问题,请参考以下文章

2021.8.19提高B组模拟9T1 + P7411 [USACO21FEB] Comfortable Cows(dfs)

2021.8.19提高B组模拟9T1 + P7411 [USACO21FEB] Comfortable Cows(dfs)

2021.8.19提高B组模拟9T3 + P7410 [USACO21FEB] Just Green Enough (贪心)

2021.8.19提高B组模拟9T3 + P7410 [USACO21FEB] Just Green Enough (贪心)

2017.12.09NOIP提高组模拟赛A组

2017.07.16【NOIP提高组】模拟赛B组 卫星照片 题解