洛谷 P3078 [USACO13MAR]扑克牌型Poker Hands

题目传送门

JDOJ 2359: USACO 2013 Mar Silver 1.Poker Hands

JDOJ传送门

题目描述

Problem 1: Poker Hands [Albert Gu, 2011]

Bessie and her friends are playing a unique version of poker involving a

deck with N (1 <= N <= 100,000) different ranks, conveniently numbered 1..N

(a normal deck has N = 13). In this game, there is only one type of hand

the cows can play: one may choose a card labeled i and a card labeled j and

play one card of every value from i to j. This type of hand is called a

"straight".

Bessie's hand currently holds a_i cards of rank i (0 <= a_i <= 100000). Help

her find the minimum number of hands she must play to get rid of all her

cards.

输入

* Line 1: The integer N.

* Lines 2..1+N: Line i+1 contains the value of a_i.

输出

* Line 1: The minimum number of straights Bessie must play to get rid

of all her cards.

样例输入

5 2 4 1 2 3

样例输出

6

提示

OUTPUT DETAILS:

Bessie can play a straight from 1 to 5, a straight from 1 to 2, a straight

from 4 to 5, two straights from 2 to 2, and a straight from 5 to 5, for a

total of 6 rounds necessary to get rid of all her cards.

题目大意:

一个牛有N堆牌,每堆牌数量不等。一只牛一次可以将第i张到第j张各打一张出去,问最少几次打完

题解:

贪心。

当然也可以用区间修改的线段树做一个优化...(我就是做线段树做到这题的,线段树代码巨长无比)然而贪心思想就可以很短的代码AC。

我们来思考一下,这道题就是给定序列,区间修改直到序列为空,最少修改次数是多少。我们很容易得出,因为修改区间是没有限制的,所以我们贪心地想,一次修改的区间越长越好。也就是说,我们找一段连续的(中间不含0的)序列,只需要都减去其中的最小值,然后答案累加上这个最小值,最后就肯定能保证这个答案的正确性。

所以有了这个分析,这道题就变成了一道模拟题。

请大家观赏AC代码:

(再次提醒long long)

#include <cstdio>
#define ll long long
using namespace std;
ll n,a,h,ans;
int main()
{
scanf("%lld",&n);
for(int i=1;i<=n;i++)
{
scanf("%lld",&a);
if(a>h)
ans+=(a-h);
h=a;
}
printf("%lld",ans);
return 0;
}

USACO Poker Hands的更多相关文章

  1. (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

    http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年 ...

  2. 算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  3. USACO . Your Ride Is Here

    Your Ride Is Here It is a well-known fact that behind every good comet is a UFO. These UFOs often co ...

  4. 【USACO 3.1】Stamps (完全背包)

    题意:给你n种价值不同的邮票,最大的不超过10000元,一次最多贴k张,求1到多少都能被表示出来?n≤50,k≤200. 题解:dp[i]表示i元最少可以用几张邮票表示,那么对于价值a的邮票,可以推出 ...

  5. USACO翻译:USACO 2013 NOV Silver三题

    USACO 2013 NOV SILVER 一.题目概览 中文题目名称 未有的奶牛 拥挤的奶牛 弹簧牛 英文题目名称 nocow crowded pogocow 可执行文件名 nocow crowde ...

  6. USACO翻译:USACO 2013 DEC Silver三题

    USACO 2013 DEC SILVER 一.题目概览 中文题目名称 挤奶调度 农场航线 贝西洗牌 英文题目名称 msched vacation shuffle 可执行文件名 msched vaca ...

  7. USACO翻译:USACO 2014 DEC Silver三题

    USACO 2014 DEC SILVER 一.题目概览 中文题目名称 回程 马拉松 奶牛慢跑 英文题目名称 piggyback marathon cowjog 可执行文件名 piggyback ma ...

  8. USACO翻译:USACO 2012 FEB Silver三题

    USACO 2012 FEB SILVER 一.题目概览 中文题目名称 矩形草地 奶牛IDs 搬家 英文题目名称 planting cowids relocate 可执行文件名 planting co ...

  9. USACO翻译:USACO 2012 JAN三题(3)

    USACO 2012JAN(题目三) 一.题目概览 中文题目名称 放牧 登山 奶牛排队 英文题目名称 grazing climb lineup 可执行文件名 grazing climb lineup ...

随机推荐

  1. elasticsearch配置集群+elk报错总结

    配置ELK的时候,我平常遇到了以下几种报错情况,整理如下(持续更新中): elasticsearch启动失败 # systemctl start elasticsearch Job for elast ...

  2. Linux下用source insight的另一种方式--Samba

    花了一些时间想找一个在Linux下的类似source insight的东东,网上有人推荐的source navigator,kscope之类,就那么几种颜色(也许没深入设置),也能叫语法高亮?至于其他 ...

  3. Mysql load data infile 导入数据出现:Data truncated for column

    [1]Mysql load data infile 导入数据出现:Data truncated for column .... 可能原因分析: (1)数据库表对应字段类型长度不够或修改为其他数据类型( ...

  4. EF core的原生SQL查询以及用EF core进行分页查询遇到的问题

    在用.net core进行数据库访问,需要处理一些比较复杂的查询,就不得不用原生的SQL查询了,然而EF Core 和EF6 的原生sql查询存在很大的差异. 在EF6中我们用SqlQuery和Exe ...

  5. C# vb .NET读取识别条形码线性条码UPC-A

    UPC-A是比较常见的条形码编码规则类型的一种.如何在C#,vb等.NET平台语言里实现快速准确读取该类型条形码呢?答案是使用SharpBarcode! SharpBarcode是C#快速高效.准确的 ...

  6. Lisp : (quote) code is data (eval) data as code

  7. 图层树右键菜单结合Command操作过程

         图层树右键菜单结合Command操作过程 根据老师线上培训图层树右键菜单的生成,添加contextMenuStrip后再依次添加.命名ToolStripMenuItem,若将全部‘项’添加C ...

  8. Windows下VS Code打开黑屏解决办法(这样真的行)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_42421611/article/d ...

  9. UUID生成库libuuid和crossguid

    libuuid是一个开源的用于生成UUID(Universally Unique Identifier,通用唯一标识符)的库. 可从https://sourceforge.net/projects/l ...

  10. i春秋——“百度杯”CTF比赛 十月场——GetFlag(md5碰撞、文件包含、网站绝对路径)

    需要提交的captcha满足等式,肯定就是MD5碰撞了 附上脚本 import hashlib def func(md5_val): for x in range(1,100000000): md5_ ...