ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

2020算法设计竞赛

2020-02-06 23:03:28  阅读:252  来源: 互联网

标签:int 竞赛 ai ll 元素 leq 算法 2020 可乐


链接:https://ac.nowcoder.com/acm/contest/3003/H
来源:牛客网

牛可乐有 n 个元素( 编号 1..n ),第 i 个元素的能量值为 aia_iai​。
牛可乐可以选择至少 k 个元素来施放一次魔法,魔法消耗的魔力是这些元素能量值的极差。形式化地,若所用元素编号集合为 S,则消耗的魔力为 max⁡i∈S{ai}−min⁡i∈S{ai}\max_{i\in S}\{a_i\}-\min_{i\in S}\{a_i\}maxi∈S​{ai​}−mini∈S​{ai​}。

牛可乐要求每个元素必须被使用恰好一次
牛可乐想知道他最少需要多少魔力才能用完所有元素,请你告诉他。

输入描述:

第一行两个正整数 n,k\text{}n, kn,k 。

第二行 n 个整数 a1,a2,…,ana_1,a_2,\dots,a_na1​,a2​,…,an​。

保证 1≤k≤n≤3×1051\leq k\leq n\leq 3\times 10^51≤k≤n≤3×105,0≤ai≤1090\leq a_i\leq 10^90≤ai​≤109。

输出描述:

输出一行,一个整数表示答案。

 

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int MA=3e5+5;
 5 const ll INF=1e9+7;
 6 ll a[MA],dp[MA];
 7 int main()
 8 {
 9     int n,k;
10     scanf("%d%d",&n,&k);
11     for(int i=1;i<=n;++i) scanf("%lld",&a[i]),dp[i]=INF;
12     sort(a+1,a+n+1);
13     dp[k]=a[k]-a[1];
14     for(int i=k+1;i<=n;++i){
15        dp[i]=min(dp[i-1]-a[i-1]+a[i],dp[i-k]-a[i-k+1]+a[i]);
16     }
17     printf("%lld\n",dp[n]);
18     return 0;
19 }

 



标签:int,竞赛,ai,ll,元素,leq,算法,2020,可乐
来源: https://www.cnblogs.com/pangbi/p/12271399.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有