barn1解题报告 —— icedream61 博客园(转载请注明出处)
------------------------------------------------------------------------------------------------------------------------------------------------
【题目】
  有一列牛棚,编号从1到S,相邻的牛棚紧挨着(间距为0),每个牛棚长度是一个单位。
  其中有C头牛,分别在各自的牛棚中,不存在多个牛挤在一个牛棚的情况。
  现在下雨了,可是顶棚被刮飞了,于是John需要买些板子给牛棚安上暂时过夜。
  木材供应商比较坏,板子长度随便选,但最多卖N块。因此John需要考虑如何买,才能在保护到所有牛的前提下,让板子的长度尽量短。
【数据范围】
  1<=M<=50
  1<=S<=200
  1<=C<=S
  牛所在牛棚的编号保证合法。
【输入样例】
  4 50 18
  3
  4
  6
  8
  14
  15
  16
  17
  21
  25
  26
  27
  30
  31
  40
  41
  42
  43
【输出样例】
  25
------------------------------------------------------------------------------------------------------------------------------------------------
【分析】
  将相邻牛棚的间距都求出来,共C-1个。
  降序排序,把前N-1个减去,就是最后答案了。
  当然,如果不足N-1个,那就都减去就好了。
------------------------------------------------------------------------------------------------------------------------------------------------
【总结】
  遗漏了一种情况。
  忘记了间距可能不足N-1个,于是WA(Wrong Answer)了。

------------------------------------------------------------------------------------------------------------------------------------------------

【代码】

 /*
ID: icedrea1
PROB: barn1
LANG: C++
*/ #include <iostream>
#include <fstream>
using namespace std; void qsort(int a[],int l,int r)
{
if(l>=r) return;
int i=l,j=r,x=a[(l+r)>>];
while()
{
while(a[i]<x) ++i;
while(a[j]>x) --j;
if(i>j) break;
swap(a[i],a[j]);
++i; --j;
}
qsort(a,l,j); qsort(a,i,r);
} int main()
{
ifstream in("barn1.in");
ofstream out("barn1.out"); int M,S,C;
int site[],cha[];
int sum; in>>M>>S>>C;
for(int i=;i<=C;++i) in>>site[i];
qsort(site,,C);
sum=site[C]-site[]+; for(int i=;i!=C;++i) cha[i]=site[i+]-site[i]-;
qsort(cha,,C-);
for(int i=C-;--M&&i>=;--i) sum-=cha[i]; out<<sum<<endl; in.close();
out.close();
return ;
}

USACO Section1.3 Barn Repair 解题报告的更多相关文章

  1. USACO Section1.5 Prime Palindromes 解题报告

    pprime解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...

  2. USACO Section1.5 Superprime Rib 解题报告

    sprime解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...

  3. USACO Section1.5 Number Triangles 解题报告

    numtri解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...

  4. USACO Section1.4 Arithmetic Progressions 解题报告

    ariprog解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...

  5. USACO Section1.3 Combination Lock 解题报告

    combo解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...

  6. USACO Section1.3 Prime Cryptarithm 解题报告

    crypt1解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...

  7. USACO Section1.3 Mixing Milk 解题报告

    milk解题报告 —— icedream61 博客园(转载请注明出处)----------------------------------------------------------------- ...

  8. USACO Section1.2 Palindromic Squares 解题报告

    palsquare解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------ ...

  9. USACO Section1.2 Dual Palindromes 解题报告

    dualpal解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...

随机推荐

  1. leetcode: 链表2

    1. copy-list-with-random-pointer(拷贝一个带随机指针的链表) A linked list is given such that each node contains a ...

  2. SVN建立分支、代码合并以及常用操作

    在项目开发的过程中,现在遇到这样一个问题: 现在是9月份,在同一个项目中我要开发A.B两个模块,A模块是11月份上线,B模块是12月份上线,但是SVN上的trunk(主干)上的代码必须是上线的. 假设 ...

  3. 深搜,四色定理,(POJ1129)

    题目链接:http://poj.org/problem?id=1129 解题报告: #include<iostream> #include<cstdio> #include&l ...

  4. CentOS 7与 Windows双系统丢失Windows启动项及默认启动项修改

    1.Windows启动项消失的原因:   在安装Win7.8/10系统+CentOS7双系统后,默认会将mbr(Main Boot Record)改写为grub2,默认的CentOS7无法识别Wind ...

  5. ibator自动代码生成

    首先,强烈推荐一篇文章,介绍的特详细 http://www.iteye.com/topic/821983 1. 插件安装 http://blog.csdn.net/rchm8519/article/d ...

  6. 3、SpringBoot+Mybatis整合------主键回填

    开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/tree/d68efe51774fc4d96e5c6870 ...

  7. DateTools,可能是最好用的iOS日期工具库

    项目简介 DateTools 用于提高Objective-C中日期和时间相关操作的效率.灵感来源于 DateTime和Time Period Library. 项目主页: DateTools 最新示例 ...

  8. 使用winsw将spring-boot jar包注册成windows服务

    背景:最近的项目中使用spring-boot, https://github.com/kohsuke/winsw/releases <service> <id>YJPSS< ...

  9. JQuery发起ajax请求,并在页面动态的添加元素

    页面html代码: <li> <div class="coll-tit"><span class="coll-icon">& ...

  10. 树梅派(Raspberry Pi 3b)安装kali linux 2.0

    最近终于入手了一枚树梅派3B,忘记是什么时候到手了,买回来,也没有激动无比,也没有心情澎湃,也就扔到床头,并没有像以前超想拥有的感觉,像是失去了对这些东西都兴趣,没有以前那么强烈了,对于这些对信仰有些 ...