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 604C 【思维水题】`

    题意: 给你01字符串的长度再给你一个串. 然后你可以在这个串中选择一个起点和一个终点使得这个连续区间内所有的位取反. 求: 经过处理后最多会得到多少次01变换. 例如:0101是4次,0001是2次 ...

  2. HDU 2674 N!Again(数学思维水题)

    题目 //行开始看被吓一跳,那么大,没有头绪, //看了解题报告,发现这是一道大大大的水题,,,,,//2009 = 7 * 7 * 41//对2009分解,看它有哪些质因子,它最大的质因子是41,那 ...

  3. HDOJ/HDU 1256 画8(绞下思维~水题)

    Problem Description 谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发. Input 输入的第一行为一个整数N,表示后面有N组数据. 每组数据中有一个字符和一 ...

  4. 2019年华南理工校赛(春季赛)--I--炒股(简单思维水题)

    水题,想想就过了 题目如下: 链接:https://ac.nowcoder.com/acm/contest/625/I来源:牛客网 攒机一时爽,一直攒机一直爽. 沉迷攒机的胡老师很快就发现,他每天只能 ...

  5. Iroha and a Grid AtCoder - 1974(思维水题)

    就是一个组合数水题 偷个图 去掉阴影部分  把整个图看成上下两个矩形 对于上面的矩形求出起点到每个绿点的方案 对于下面的矩形 求出每个绿点到终点的方案 上下两个绿点的方案相乘后相加 就是了 想想为什么 ...

  6. 思维水题:UVa512-Spreadsheet Tracking

    Spreadsheet Tracking Data in spreadsheets are stored in cells, which are organized in rows (r) and c ...

  7. 【Gym - 100923A】Por Costel and Azerah(思维水题)

    Por Costel and Azerah Descriptions 给你n个数 问你,有多少个子序列 的和是偶数 Example Input 233 10 124 2 Output 33 题目链接 ...

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

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

  9. 又一道简单题&&Ladygod(两道思维水题)

    Ladygod Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit S ...

随机推荐

  1. J2SE知识点摘记(六)

    1.        static关键字的使用 static 关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类. static 修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯 ...

  2. CC++初学者编程教程(13) 基于Oracle linux 的Oracle12c环境搭建

    1设置虚拟机选项 2 设置文件夹共享 3启动文件夹共享向导 4 设置共享文件夹 5 启用共享 6 关闭虚拟机设置 7 开启虚拟机 8 登陆帐户 9 看见虚拟机桌面 10 安装vmwaretools 1 ...

  3. Unix/Linux环境C编程入门教程(18) kali-linuxCCPP开发环境搭建

    1. Kali linux是BT5的晋级版本,用于信息安全.基于Debian7内核.新建虚拟机. 2. 选择默认虚拟机 3. 选择稍后安装操作系统 4.选择Linux Debian7 64位,因为Ka ...

  4. Linux中service命令和/etc/init.d/的关系

    Linux中service命令和/etc/init.d/的关系   service xxx启动 /etc/init.d/ 目录下的xxx脚本 如一个脚本名为 mysvc保存在/etc/init.d/下 ...

  5. 「花田对」CSDN程序员专场——谁来拯救技术宅!_豆瓣

    「花田对」CSDN程序员专场--谁来拯救技术宅!_豆瓣 「花田对」CSDN程序员专场--谁来拯救技术宅!

  6. 网易云课堂_程序设计入门-C语言_第三周:循环_2数字特征值

    2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作 ...

  7. get the first and last collection item in Magento

    $product_collection->getFirstItem() $product_collection->getLastItem()

  8. mac隐藏或显示文件

    1,显示方法:在“终端” 输入命令 defaults write com.apple.finder AppleShowAllFiles TRUE killall Finder 重启Finder,系统隐 ...

  9. 取得正在运行的Activity

    在main.xml中: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...

  10. Java复习第一天---Javascript的基本知识点

    1.HelloWord: 2.基础语法: 3.嵌入HTML 借助window.onload事件在整个窗体载入完毕之后运行程序代码 4.事件驱动: 5.DOM操作 5.1 查找元素节点 5.1.1 依据 ...