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(第一个48是 48-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 (贪心)