题意

之后补。

分析

这题同样也很精巧。我们不妨思考一下,如果只允许用一块木板,那么要购买多少距离?是整个的距离吗?不是,是从第一个到最后一个(哈哈哈哈哈哈哈)。但是,不包括第一个的“左边”和最后一个的“右边”。只允许用两块的时候发生了什么变化?可以想见,最好的解是将最宽的那个间隔去掉。以此类推。

以这样的思路就可以得到题目的解法。问题在于各种各样的细节(again):样例数据里面给的牛棚按照顺序但是实际数据它未作保证;然后牛棚的距离记得-1,因为牛棚本身需要盖木板(也就是说,当木板限制大于牛数目时,最右解是每个牛棚盖长度为1的木板,也就是n)……

这是典型的贪心思想。

代码

  1. /*
  2. ID: samhx1
  3. LANG: C++14
  4. TASK: barn1
  5. */
  6. #include <bits/stdc++.h>
  7. #define MP make_pair
  8. #define PB push_back
  9. #define fi first
  10. #define se second
  11. #define ZERO(x) memset((x), 0, sizeof(x))
  12. #define ALL(x) (x).begin(),(x).end()
  13. #define rep(i, a, b) for (ll i = (a); i <= (b); ++i)
  14. #define per(i, a, b) for (ll i = (a); i >= (b); --i)
  15. #define QUICKIO \
  16. ios::sync_with_stdio(false); \
  17. cin.tie(0); \
  18. cout.tie(0);
  19. using namespace std;
  20. using ll = long long;
  21. using ull = unsigned long long;
  22. using pi = pair<ll,ll>;
  23. int main()
  24. {
  25. freopen("barn1.in","r",stdin);
  26. freopen("barn1.out","w",stdout);
  27. int stall[205];
  28. int m,s,c;
  29. cin>>m>>s>>c;
  30. if(m>=c) { cout<<c<<endl; return 0; }
  31. rep(i,1,c)
  32. cin>>stall[i];
  33. sort(stall+1,stall+c+1);
  34. stall[0]=0;
  35. int delta[205];
  36. rep(i,1,c)
  37. delta[i]=stall[i]-stall[i-1]-1;
  38. sort(delta+2,delta+c+1);
  39. int ans=0;
  40. rep(i,0,m-2)
  41. ans+=delta[c-i];
  42. cout<<s-ans-(stall[1]-1)-(s-stall[c])<<endl;
  43. return 0;
  44. }

「日常训练」「小专题·USACO」 Barn Repair(1-4)的更多相关文章

  1. 「日常训练」「小专题·USACO」 Ski Course Design (1-4)

    题目 以后补 分析 mmp这题把我写蠢哭了 我原来的思路是什么呢? 每轮找min/max,然后两个决策:升min/降max 像这样子dfs找最优,然后花式剪枝 但是一想不对啊,这才1-4,哪有那么复杂 ...

  2. 「日常训练」「小专题·USACO」 Wormholes(1-4)

    题意 之后补充. 分析 这是一条很好的考察递归(或者说搜索)的题目.它的两个过程(建立初步解,验证)都用到了递归(或者说运用递归可以相当程度的减少代码量). 具体实现见代码.注意,为了使用std::p ...

  3. 「日常训练」「小专题·USACO」 Broken Necklace(1-2)

    题意 圆形链条,打断一处可以形成一条链.问在哪个地方开始打断,能够形成最大的连续颜色(白色视作同样的颜色)? 分析 说起来很高级,但是我们实际上并不需要穷举打断的地方,只需要把串重复三回啊三回.然后从 ...

  4. 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)

    题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...

  5. 「日常训练」「小专题·图论」Domino Effect(1-5)

    题意 分析 这题几乎就是一条dijkstra的问题.但是,如何考虑倒在中间? 要意识到这题求什么:单源最短路的最大值.那么有没有更大的?倒在中间有可能会使它更大. 但是要注意一个问题:不要把不存在的边 ...

  6. 「日常训练」「小专题·图论」 Cow Contest (1-3)

    题意 分析 问题是要看出来这是个floyd闭包问题.我没看出来- - 分析之后补充. 代码 // Origin: // Theme: Graph Theory (Basic) // Date: 080 ...

  7. 「日常训练」「小专题·图论」 Frogger (1-1)

    题意 分析 变形的dijkstra. 分析题意之后补充. 代码 // Origin: // Theme: Graph Theory (Basic) // Date: 080518 // Author: ...

  8. 「日常训练」 Fire!(UVA-11624)

    与其说是训练不如说是重温.重新写了Java版本的代码. import java.util.*; import java.math.*; import java.io.BufferedInputStre ...

  9. 「日常训练」Card Game Cheater(HDU-1528)

    题意与分析 题意是这样的:有\(n\)张牌,然后第一行是Adam的牌,第二行是Eve的牌:每两个字符代表一张牌,第一个字符表示牌的点数,第二个表示牌的花色.Adam和Eve每次从自己的牌中选出一张牌进 ...

随机推荐

  1. 作为PHP开发者请务必了解Composer

    Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Composer是必须的. 对于使用者来说Composer非常的简单,通过简单的一条命令将需要的 ...

  2. 一、安装 IntelliJ IDEA

    首先,双击打开 IntelliJ IDEA 的快捷方式: 在此,需要说明: 如果咱们的电脑曾经安装过 IntelliJ IDEA,并且你在卸载 IntelliJ IDEA 的时候没有删除其配置文件目录 ...

  3. maven学习记录一——maven介绍及入门

    1       Maven的简介 1.1     什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的 1.2     Maven好处 普通的传统项目 M ...

  4. 【洛谷P1538】迎春舞会之数字舞蹈

    迎春舞会之数字舞蹈 题目链接 一道奇怪的模拟题, 先将样例输出复制下来,观察观察 -- -- -- -- -- -- -- -- ① | | | | | | | | | | | | | | ② | | ...

  5. 【luogu P3865 ST表】 模板

    跟忠诚是一样滴,不过是把min改成max就AC了.模板题. #include <cstdio> #include <algorithm> using namespace std ...

  6. SQL里的concat() 以及group_concat() 函数的使用

    实例参考:https://blog.csdn.net/mary19920410/article/details/76545053 一 concat()函数 1.功能:将多个字符串连接成一个字符串. 2 ...

  7. Sass 基础(七)

    Sass Maps 的函数-map-remove($map,$key),keywords($args) map-remove($map,$key) map-remove($map,$key)函数是用来 ...

  8. P1247 取火柴游戏

    题目描述 输入k及k个整数n1,n2,-,nk,表示有k堆火柴棒,第i堆火柴棒的根数为ni:接着便是你和计算机取火柴棒的对弈游戏.取的规则如下:每次可以从一堆中取走若干根火柴,也可以一堆全部取走,但不 ...

  9. 【TOJ 5065】最长连续子序列(前缀和)

    Description 给定一系列非负整数,求最长的连续子序列,使其和是7的倍数. Input 第一行为正整数N(1<=N<=50000),接下来有N行,每行有一个非负整数,所有整数不大于 ...

  10. SPOJ8222 NSUBSTR - Substrings(后缀自动机)

    You are given a string S which consists of 250000 lowercase latin letters at most. We define F(x) as ...