洛谷 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. Jupyter Notebook 访问密码重置

    试想你访问 Jupyter Notebook ,突然忘记了访问密码,该怎么做.经实践,只需利用命令行重新设置下密码即可. ## step 1:终端输入 jupyter notebook --gener ...

  2. Visual Studio 调试系列7 查看变量占用的内存(使用内存窗口)

    系列目录     [已更新最新开发文章,点击查看详细] 在调试期间,“内存”窗口显示应用程序正在使用的内存空间. 调试器窗口(如监视窗口.自动窗口.局部变量窗口和快速监视对话框)显示变量,这些变量存储 ...

  3. ApartmentState.STA

    需要设置子线程 ApartmentState 为 STA 模式,但 Task 又不能直接设置 ApartmentState,因此需要用 Thread 来封装一下. using System.Threa ...

  4. SpringBoot第三篇:配置文件详解二

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10615605.html 版权声明:本文为博主原创文章,转载请附上博文链接! 前言   本文主要讲 ...

  5. I/O多路复用-EPOLL探索

    什么是I/O多路复用 I/O多路复用就是通过一种机制,可以监视多个描述符,一旦某个IO能够读写,通知程序进行相应的读写操作. I/O多路复用的场合 1.当客户处理多个描述字时(通常是交互式输入和网络套 ...

  6. 【layui】设置select只向下展开

    加css .layui-form-selectup dl { bottom: auto; }

  7. Django-查询优化

    表数据: from django.db import models class Province(models.Model): name = models.CharField(max_length=1 ...

  8. ReentrantLock 锁释放源码分析

    ReentrantLock 锁释放源码分析: 调用的是unlock 的方法: public void unlock() { sync.release(1); } 接下来分析release() 方法: ...

  9. Teradata 数据库介绍

    Teradata在整体上是按Shared Nothing 架构体系进行组织的,他的定位就是大型数据仓库系统,定位比较高,他的软硬件都是NCR自己的,其他的都不识别:所以一般的企业用不起,价格很贵.由于 ...

  10. 阿里云 OSS 如何设置防盗链, 上个月图床流量耗费50G+,请求次数10W+,什么鬼?

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...