洛谷 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. cocos: RenderTexture 合并精灵图片

    var render = new cc.RenderTexture(730, 450); //创建渲染纹理对象,并数字确定宽度 render.begin(); var sp1 = cc.Sprite. ...

  2. C# HTTP系列1 HttpWebRequest类

    系列目录     [已更新最新开发文章,点击查看详细] .NET Framework 中 System.Net 命名空间下提供了 HttpWebRequest 和 HttpWebResponse 2个 ...

  3. WebStorm开发Vue自定义标签提示是未知标签解决办法

    打开 File -> Settings -> File Types 在右侧的窗口中找到Vue.js Template 并选中,在下面的窗口中添加 *.vue 即可解决问题. 修改后

  4. Thinkpad S430 3364-A59 (笔记本型号)加内存条过程

    背景:13年初选购的本,目前使用发现卡得厉害,原装内存只有4G,遂寻思扩充内存. [1]准备工具 待准备工具明细: (1)螺丝刀 主要为了卸后盖的螺丝. (2)内存条 待增加的内存条,如下图: 说明一 ...

  5. golang学习笔记 ---rand

    在Golang中,有两个包提供了rand,分别为 "math/rand" 和 "crypto/rand",  对应两种应用场景. "math/rand ...

  6. 【spring boot】spring boot的自定义banner修改+spring boot启动项目图标修改

    1.启动Spring Boot项目后会看到这样的图案,这个图片其实是可以自定义的,打开网站 http://patorjk.com/software/taag/#p=display&h=3&am ...

  7. tkmybatis VS mybatisplus

    本文是简单对比了以下官网上的内容 文章目录 TkMybatis Vs MybatisPlus 1.基础CRUD BaseMapper 2.代码生成器 3. 全局主键 Sequence主键 4. 热加载 ...

  8. 求x到y的最少计算次数

    链接:https://www.nowcoder.com/questionTerminal/45d04d4d047c48768543eeec95798ed6?orderByHotValue=1& ...

  9. 添加wcf服务引用,无法签出当前文件

    写了一些wcf服务接口,使用控制台可以正常启动服务,想要测试一下,新建项目添加服务引用,提示:“无法签出当前文件.该文件可能为只读或已锁定,或者您需要手动签出它.” 在网上找了找,有说可能是因为源代码 ...

  10. Python - 注释 - 第四天

    注释 确保对模块, 函数, 方法和行内注释使用正确的风格 Python中的注释有单行注释和多行注释: Python中单行注释以 # 开头,例如: # 这是一个注释 print('Hello Pytho ...