DZY的根
【问题描述】
DZY是个没有根的人,他十分想要有根,这样才能。。。智商爆表的计算机大神WJC决定再帮帮他,他用程序制造了N个根——有生命的根!
这N个根和WJC一样都十分机智,他们要参加国际象棋比赛,该比赛要进行K场对弈。每个根最多参加两场对弈,最少参加零场对弈。每个根都有一个与其他根都不相同的等级(用一个正整数来表示)。
在对弈中,等级高的根必须用黑色的棋子,等级低的根必须用白色的棋子。 每个根最多只能用一次黑色的棋子和一次白色的棋子。
为了增加比赛的客观度,观众希望K场对弈中双方等级差的总和最小。比如有7个根,他们的等级分别是30,17,26,41,19,38,18,要进行3场比赛,最好的安排是 2 vs 7, 7 vs 5,6 vs 4,此时等级差的总和为(18-17)+(19-18)+(41-38)=5 达到最小。
【输入格式】
第一行两个整数N、K。接下来N行,第i行表示第i-1个根等级。
【输出格式】
最小等级差的总和
【输入样例】
7 3
30
17
26
41
19
38
18
【输出样例】
5
【数据范围】
90% N<=3000
100% N<=100000
所有等级值<110 1<=K<=N-1
【来源】
由 Hacker_WJC 改编于某个OJ上的某道题(23333333333333333)

题解:每个根最多参加两场对弈,最少参加零场对弈,其实就是代表赢一次必定会输一次,也就是排序中相邻的两个数的差和最小;

代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int INF=0x3f3f3f3f;
#define SI(x) scanf("%d",&x)
#define SL(x) scanf("%lld",&x)
#define PI(x) printf("%d",x)
#define PL(x) printf("%lld",x)
#define mem(x,y) memset(x,y,sizeof(x))
#define P_ printf(" ")
typedef long long LL;
const int MAXN=100010;
int m[MAXN],n[MAXN];
int main(){int N,K;while(~scanf("%d%d",&N,&K)){for(int i=0;i<N;i++){SI(m[i]);}sort(m,m+N);int tp=0;for(int i=1;i<N;i++){n[tp]=m[i]-m[i-1];tp++;}sort(n,n+tp);int ans=0;for(int i=0;i<K;i++)ans+=n[i];printf("%d\n",ans);}return 0;
}

  

DZY的根(思维水)相关推荐

  1. codeforces 1060a(思维水题)

    Let's call a string a phone number if it has length 11 and fits the pattern "8xxxxxxxxxx", ...

  2. FZU 2230 2230 翻翻棋(思维水题)

    Problem Description 象棋翻翻棋(暗棋)中双方在4*8的格子中交战,有时候最后会只剩下帅和将.根据暗棋的规则,棋子只能上下左右移动,且相同的级别下,主动移动到地方棋子方将吃掉对方的棋 ...

  3. CF Round #426 (Div. 2) The Useless Toy 思维 水题

    题目链接: http://codeforces.com/contest/834/problem/A 题目描述: 输入起始状态和结束状态和数列长度, 判断旋转方向是顺时针逆时针还是不合理 解题思路: 长 ...

  4. 中石油训练赛 - 姓氏(思维+水题)

    题目描述 在一个很大的课室里,里面有很多学生在听课.L老师挑选了其中的N个不同的学生起立回答问题,L老师对起立的每一个学生都是问同样的问题:"在本课室里,和你同姓的学生有多少人(不包括你自己 ...

  5. 【CodeForces - 707B】Bakery(思维水题)

    Bakery Descriptions 玛莎想在从1到n的n个城市中开一家自己的面包店,在其中一个城市烘焙松饼. 为了在她的面包房烘焙松饼,玛莎需要从一些储存的地方建立面粉供应.只有k个仓库,位于不同 ...

  6. CodeForces - 622C Not Equal on a Segment(思维+水题)

    题目链接:点击查看 题目大意:先给出一个长度为n的数列,然后给出m次询问,每次询问的格式是l,r,x,其中[l,r]代表的是数列的下标范围,要求我们输出任意一个在区间[l,r]内值不等于x的下标 题目 ...

  7. 【CodeForces - 1038A 】Equality (思维水题,预处理字符串)

    题干: You are given a string ss of length nn, which consists only of the first kk letters of the Latin ...

  8. HDU 6168 Numbers 思维 水题

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6168 题目描述: 定义数组b是由数组a每两项的和组成的,现在将数组A, B混在一起给你, 筛出数组A ...

  9. 【Disturbed People】【CodeForces - 1077B】(思维水题)

    题目: There is a house with nn flats situated on the main street of Berlatov. Vova is watching this ho ...

最新文章

  1. koa cluster 使用多进程
  2. html应用多个类,html – 如何避免重复多个css类
  3. 推荐:用动画的形式呈现解LeetCode题目的思路(github上25000多star)
  4. wxpython开发的软件_Python GUI开发环境的搭建(wxPython)
  5. Entity Framework入门教程:创建实体数据模型
  6. docker下的mysql my.ini_docker部署mysql启动失败
  7. 智能音箱扎堆的技术红海,Rokid 如何杀出一条血路?
  8. python体测成绩数据分析统计服_体测成绩数据分析
  9. scanf()的用法
  10. ubuntu修改系统时区和jvm时区
  11. 关于css3的calc()
  12. CAD如何导出天正各版本DWG图纸?CAD图形导出教程
  13. 数据智能,慧眼识“真”——个推大数据风控产品亮相
  14. php左斜线和右斜线,左斜杠和右斜杠分别有什么意义?
  15. 五 IP核行业潜在投资方向和机会
  16. 从身家500万到两手空空,看她如何再次成功翻身
  17. Spring AOP(获取入参和返回值)及其原理:动态代理
  18. 打破传统的控制理论之(控制理论+深度学习)
  19. put和putIfAbsent的区别
  20. selenium驱动Firefox安装和环境配置

热门文章

  1. centos7修改网卡名称为eth0
  2. enjoyable parameter in pgbouncer
  3. Apache配置问题
  4. M1: 复制带随机指针的链表
  5. 限制上传文件为jpg文件
  6. 解决“鼠标关机后仍然发光”的方法
  7. 在report service中@参数的问题!
  8. 个人三观的东西(1)
  9. 推荐系统-Task04前后端基础及交互
  10. LSTM(长短期记忆网络)原理介绍